OxL Справочник OxL
РусскийEnglish

tests/users_test.oxl

oxl
use super.model { Name, Email, UserId, NotFound, EmailTaken }
use super.users { Users }

test "register and get a user" {
  let name = Name.from("Ann")!
  let u = Users.register(name, Email.from("ann@example.com")!)!
  assert u.name == "Ann"
  let again = Users.get(u.id)!
  assert again.email == "ann@example.com"
  assert again.id == u.id
}

test "the same email cannot be registered twice" {
  let n = Name.from("Bob")!
  let e = Email.from("bob@example.com")!
  Users.register(n, e)!
  assert_fails(Users.register(n, e), EmailTaken)
}

test "unknown user is NotFound" {
  assert_fails(Users.get(UserId(404)), NotFound)
}

test "refined types reject invalid values" {
  assert Email.from("not-an-email") is InvalidValue
  assert Name.from("") is InvalidValue
}

Исходник: examples/shop/tests/users_test.oxl