summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2017-10-05 14:11:03 +0200
committerMatthias Beyer <mail@beyermatthias.de>2017-10-05 14:11:03 +0200
commit57b2fc454faeeb72a3d7573ce0ae656a62f1604b (patch)
treed76ade2f1030cafc36298d8fc2bc70a58338e3fb
parent58cbce8728405b4342f4b0b89318a29e1aa1adba (diff)
Add tests where both filter types are used
-rw-r--r--src/failable/filter.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/failable/filter.rs b/src/failable/filter.rs
index a872543..050084c 100644
--- a/src/failable/filter.rs
+++ b/src/failable/filter.rs
@@ -384,5 +384,36 @@ mod tests {
assert!(e.filter(&1).is_err());
}
+
+ #[test]
+ fn test_both_filter_types() {
+ use filter::Filter;
+
+ let a = |_: &i32| -> Result<bool, StupError> { Ok(true) };
+ let b = |_: &i32| -> bool { true };
+ let c = |_: &i32| -> Result<bool, StupError> { Ok(true) };
+ let d = |_: &i32| -> bool { false };
+
+ let e = a // true
+ .and(b.into_failable().map_err(|_| StupError {})) // true
+ .xor(c) // true
+ .or(d.into_failable().map_err(|_| StupError {})); // true
+
+ assert!(!e.filter(&1).unwrap());
+ }
+
+
+ #[test]
+ fn test_both_filter_types_in_one_scope() {
+ use filter::Filter;
+ use failable::filter::FailableFilter;
+
+ let failable = |_: &i32| -> Result<bool, StupError> { Ok(true) };
+ let unfailable = |_: &i32| -> bool { true };
+
+ assert!(failable.filter(&1).unwrap());
+ assert!(unfailable.filter(&1));
+
+ }
}