From 51c6b1e6a365112865dd579fd604d18d97d32c55 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sun, 1 Oct 2017 13:58:47 +0200 Subject: Add more tests --- src/failable/filter.rs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/failable/filter.rs b/src/failable/filter.rs index 158111b..a940cf5 100644 --- a/src/failable/filter.rs +++ b/src/failable/filter.rs @@ -410,5 +410,36 @@ mod tests { assert!(a.filter(&1).unwrap()); } + + #[test] + fn test_error_return() { + let a = |_: &i32| -> Result { Err(StupError {}) }; + + assert!(a.filter(&1).is_err()); + } + + #[test] + fn test_error_return_and_chained() { + let a = |_: &i32| -> Result { Err(StupError {}) }; + let b = |_: &i32| -> Result { Ok(true) }; + let c = |_: &i32| -> Result { Ok(true) }; + let d = |_: &i32| -> Result { Ok(true) }; + + let e = d.and(b).and(c).and(a); + + assert!(e.filter(&1).is_err()); + } + + #[test] + fn test_error_return_or_chained() { + let a = |_: &i32| -> Result { Err(StupError {}) }; + let b = |_: &i32| -> Result { Ok(true) }; + let c = |_: &i32| -> Result { Ok(true) }; + let d = |_: &i32| -> Result { Ok(true) }; + + let e = a.or(b).or(c).or(d); + + assert!(e.filter(&1).is_err()); + } } -- cgit v1.2.3