fluent_assertions/assertions/
result_assertion.rs1use super::Assertion;
2use std::fmt::Debug;
3
4impl<T, E> Assertion<Result<T, E>>
6where
7 T: Debug,
8 E: Debug,
9{
10 #[track_caller]
19 pub fn be_ok(self) -> Assertion<T> {
20 match self.value {
21 Ok(value) => Assertion { value },
22 Err(e) => panic!("Expected Ok, but got Err({:?})", e),
23 }
24 }
25
26 #[track_caller]
35 pub fn be_err(self) -> Assertion<E> {
36 match self.value {
37 Ok(v) => panic!("Expected Err, but got Ok({:?})", v),
38 Err(error) => Assertion { value: error },
39 }
40 }
41}
42
43#[cfg(test)]
44mod tests {
45 use crate::assertions::*;
46 use rstest::*;
47
48 #[rstest]
49 #[case(Ok(42))]
50 #[case(Ok(0))]
51 fn should_be_ok(#[case] input: Result<i32, String>) {
52 input.should().be_ok();
53 }
54
55 #[rstest]
56 fn should_be_err() {
57 let error = "Error message".to_string();
58 let result: Result<i32, String> = Err(error);
59 result.should().be_err();
60 }
61}