surrealpatch/tests/common/expected.rs

29 lines
827 B
Rust
Raw Permalink Normal View History

use serde_json::Value as JsonValue;
pub enum Expected {
Any,
One(&'static str),
Two(&'static str, &'static str),
}
impl Expected {
pub fn check_results(&self, q: &str, results: &[JsonValue]) {
match self {
Expected::Any => {}
Expected::One(expected) => {
assert_eq!(results.len(), 1, "Wrong number of result for {q}");
Self::check_json(q, &results[0], expected);
}
Expected::Two(expected1, expected2) => {
assert_eq!(results.len(), 2, "Wrong number of result for {q}");
Self::check_json(q, &results[0], expected1);
Self::check_json(q, &results[1], expected2);
}
}
}
pub fn check_json(q: &str, result: &JsonValue, expected: &str) {
let expected: JsonValue = serde_json::from_str(expected).expect(expected);
assert_eq!(result, &expected, "Unexpected result on query {q}");
}
}