aboutsummaryrefslogtreecommitdiffstats
path: root/validator_derive/tests/range.rs
diff options
context:
space:
mode:
Diffstat (limited to 'validator_derive/tests/range.rs')
-rw-r--r--validator_derive/tests/range.rs21
1 files changed, 20 insertions, 1 deletions
diff --git a/validator_derive/tests/range.rs b/validator_derive/tests/range.rs
index 869510a..006d085 100644
--- a/validator_derive/tests/range.rs
+++ b/validator_derive/tests/range.rs
@@ -2,7 +2,7 @@
extern crate validator_derive;
extern crate validator;
-use validator::Validate;
+use validator::{Validate, ValidationErrors};
#[test]
fn can_validate_range_ok() {
@@ -71,3 +71,22 @@ fn can_specify_message_for_range() {
assert_eq!(errs["val"].len(), 1);
assert_eq!(errs["val"][0].clone().message.unwrap(), "oops");
}
+
+#[test]
+fn can_pass_reference_as_validate() {
+ // This tests that the blanket Validate implementation on
+ // `&T where T:Validate` works properly
+
+ #[derive(Validate)]
+ struct TestStruct {
+ #[validate(range(min = 100))]
+ num_field: u32,
+ }
+
+ fn validate<T: Validate>(value: T) -> Result<(), ValidationErrors> {
+ value.validate()
+ }
+
+ let val = TestStruct { num_field: 10 };
+ validate(&val).unwrap_err();
+}