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 pub fn be_ok(self) -> Assertion<T> {
12 match self.value {
13 Ok(value) => Assertion { value },
14 Err(e) => panic!("Expected Ok, but got Err({:?})", e),
15 }
16 }
17
18 pub fn be_err(self) -> Assertion<E> {
20 match self.value {
21 Ok(v) => panic!("Expected Err, but got Ok({:?})", v),
22 Err(error) => Assertion { value: error },
23 }
24 }
25}
26
27#[cfg(test)]
28mod tests {
29 use crate::assertions::*;
30 use rstest::*;
31
32 #[rstest]
33 #[case(Ok(42))]
34 #[case(Ok(0))]
35 fn should_be_ok(#[case] input: Result<i32, String>) {
36 input.should().be_ok();
37 }
38
39 #[rstest]
40 fn should_be_err() {
41 let error = "Error message".to_string();
42 let result: Result<i32, String> = Err(error);
43 result.should().be_err();
44 }
45}