fluent_asserter/
result_asserter.rs

1use crate::*;
2use std::fmt::Display;
3
4//TODO: make trait and implement it
5
6impl<T, K> Asserter<&Result<T, K>>
7where
8    T: PartialEq + Display,
9    K: PartialEq + Display,
10{
11    pub fn is_ok(&self) {
12        match &self.value {
13            Ok(_) => {}
14            Err(val) => {
15                panic!(
16                    "Expected '{}' to be Ok, but found Err({}).",
17                    &self.name, val
18                )
19            }
20        }
21    }
22
23    pub fn is_error(&self) {
24        match &self.value {
25            Ok(val) => {
26                panic!(
27                    "Expected '{}' to be Err(_), but found Ok({}).",
28                    &self.name, val
29                )
30            }
31            Err(_) => {}
32        }
33    }
34
35    pub fn is_ok_with_value(&self, expected_value: T) {
36        match &self.value {
37            Ok(val) => {
38                if *val != expected_value {
39                    panic!(
40                        "Expected '{}' to be Ok({}), but found Ok({}).",
41                        &self.name, expected_value, val
42                    )
43                }
44            }
45            Err(val) => {
46                panic!(
47                    "Expected '{}' to be Ok({}), but found Err({}).",
48                    &self.name, expected_value, val
49                )
50            }
51        }
52    }
53
54    pub fn is_error_with_value(&self, expected_value: K) {
55        match &self.value {
56            Ok(val) => {
57                panic!(
58                    "Expected '{}' to be Err({}), but found Ok({}).",
59                    &self.name, expected_value, val
60                )
61            }
62            Err(val) => {
63                if *val != expected_value {
64                    panic!(
65                        "Expected '{}' to be Err({}), but found Err({}).",
66                        &self.name, expected_value, val
67                    )
68                }
69            }
70        }
71    }
72}