aboutsummaryrefslogtreecommitdiffstats
path: root/validator_derive/tests/phone.rs
diff options
context:
space:
mode:
Diffstat (limited to 'validator_derive/tests/phone.rs')
-rw-r--r--validator_derive/tests/phone.rs77
1 files changed, 77 insertions, 0 deletions
diff --git a/validator_derive/tests/phone.rs b/validator_derive/tests/phone.rs
new file mode 100644
index 0000000..675d4c5
--- /dev/null
+++ b/validator_derive/tests/phone.rs
@@ -0,0 +1,77 @@
+#[macro_use]
+extern crate validator_derive;
+extern crate validator;
+
+use validator::Validate;
+
+
+#[test]
+fn can_validate_phone_ok() {
+ #[derive(Debug, Validate)]
+ struct TestStruct {
+ #[validate(phone)]
+ val: String,
+ }
+
+ let s = TestStruct {
+ val: "+14152370800".to_string(),
+ };
+
+ assert!(s.validate().is_ok());
+}
+
+#[test]
+fn bad_phone_fails_validation() {
+ #[derive(Debug, Validate)]
+ struct TestStruct {
+ #[validate(phone)]
+ val: String,
+ }
+
+ let s = TestStruct {
+ val: "bob".to_string(),
+ };
+ let res = s.validate();
+ assert!(res.is_err());
+ let errs = res.unwrap_err().inner();
+ assert!(errs.contains_key("val"));
+ assert_eq!(errs["val"].len(), 1);
+ assert_eq!(errs["val"][0].code, "phone");
+}
+
+#[test]
+fn can_specify_code_for_phone() {
+ #[derive(Debug, Validate)]
+ struct TestStruct {
+ #[validate(phone(code = "oops"))]
+ val: String,
+ }
+ let s = TestStruct {
+ val: "bob".to_string(),
+ };
+ let res = s.validate();
+ assert!(res.is_err());
+ let errs = res.unwrap_err().inner();
+ assert!(errs.contains_key("val"));
+ assert_eq!(errs["val"].len(), 1);
+ assert_eq!(errs["val"][0].code, "oops");
+ assert_eq!(errs["val"][0].params["value"], "bob");
+}
+
+#[test]
+fn can_specify_message_for_phone() {
+ #[derive(Debug, Validate)]
+ struct TestStruct {
+ #[validate(phone(message = "oops"))]
+ val: String,
+ }
+ let s = TestStruct {
+ val: "bob".to_string(),
+ };
+ let res = s.validate();
+ assert!(res.is_err());
+ let errs = res.unwrap_err().inner();
+ assert!(errs.contains_key("val"));
+ assert_eq!(errs["val"].len(), 1);
+ assert_eq!(errs["val"][0].clone().message.unwrap(), "oops");
+}