specler/core/
asserts.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/// Asserts that a `SpecValidatorResult` is valid
#[macro_export]
macro_rules! assert_spec_valid {
        ($result:expr) => {
            match $result {
                SpecValidatorResult::Valid(_) => (),
                SpecValidatorResult::Invalid(v, _) => {
                    panic!("Expected '{}' to pass the specification, but got errors", v)
                }
            }
        };
    }

/// Asserts that a `SpecValidatorResult` is invalid
#[macro_export]
macro_rules! assert_spec_invalid {
        ($result:expr) => {
            match $result {
                SpecValidatorResult::Invalid(_, _) => (),
                SpecValidatorResult::Valid(_) => {
                    panic!("Expected an invalid result, but got valid")
                }
            }
        };
    }

/// Asserts that a `SpecValidatorResult` is invalid and contains the expected error
#[macro_export]
macro_rules! assert_spec_validation_error {
        ($result:expr, $expected_err:expr) => {
            match $result {
                SpecValidatorResult::Valid(_) => panic!("Expected an Err, but got Ok"),
                SpecValidatorResult::Invalid(_, errors) => {
                    assert!(errors.contains(&$expected_err.to_string()))
                }
            }
        };
    }