diff options
Diffstat (limited to 'validator_derive/tests/range.rs')
| -rw-r--r-- | validator_derive/tests/range.rs | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/validator_derive/tests/range.rs b/validator_derive/tests/range.rs new file mode 100644 index 0000000..2ecd678 --- /dev/null +++ b/validator_derive/tests/range.rs @@ -0,0 +1,78 @@ +#[macro_use] +extern crate validator_derive; +extern crate validator; + +use validator::Validate; + +#[test] +fn can_validate_range_ok() { + #[derive(Debug, Validate)] + struct TestStruct { + #[validate(range(min = "5", max = "10"))] + val: usize, + } + + let s = TestStruct { + val: 6, + }; + + assert!(s.validate().is_ok()); +} + +#[test] +fn value_out_of_range_fails_validation() { + #[derive(Debug, Validate)] + struct TestStruct { + #[validate(range(min = "5", max = "10"))] + val: usize, + } + + let s = TestStruct { + val: 11, + }; + 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, "range"); +} + +#[test] +fn can_specify_code_for_range() { + #[derive(Debug, Validate)] + struct TestStruct { + #[validate(range(min = "5", max = "10", code = "oops"))] + val: usize, + } + let s = TestStruct { + val: 11, + }; + 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"], 11); + assert_eq!(errs["val"][0].params["min"], 5f64); + assert_eq!(errs["val"][0].params["max"], 10f64); +} + +#[test] +fn can_specify_message_for_range() { + #[derive(Debug, Validate)] + struct TestStruct { + #[validate(range(min = "5", max = "10", message = "oops"))] + val: usize, + } + let s = TestStruct { + val: 1, + }; + 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"); +} |
