tests/users_test.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