pub struct JsonExact { /* private fields */ }
Expand description
Matches on exact JSON data. This will be most useful when the exact contents of a message are important for matching, and any failure to match should cause an error.
§Example
use serde_json::json;
use ws_mock::matchers::{JsonExact, Matcher};
let matching_data = r#"{ "data": 42 }"#;
let non_matching_data = r#"{ "data": 0 }"#;
let expected = json!({"data": 42});
let matcher = JsonExact::new(expected);
assert!(matcher.matches(matching_data));
assert!(!matcher.matches(non_matching_data));
Implementations§
source§impl JsonExact
impl JsonExact
sourcepub fn new(json: Value) -> Self
pub fn new(json: Value) -> Self
Examples found in repository?
examples/json_match.rs (line 18)
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 39 40 41 42
pub async fn main() {
let expected_json = json!({"message": "heartbeat"});
let json_msg = serde_json::to_string(&expected_json).expect("Failed to serialize message");
let server = WsMockServer::start().await;
WsMock::new()
.matcher(JsonExact::new(expected_json))
.respond_with(Message::Text("heartbeat".to_string()))
.expect(1)
.mount(&server)
.await;
let (stream, _resp) = connect_async(server.uri().await)
.await
.expect("Connecting failed");
let (mut send, mut recv) = stream.split();
send.send(Message::from(json_msg)).await.unwrap();
let mut received = Vec::new();
while let Ok(Some(Ok(message))) = timeout(Duration::from_millis(100), recv.next()).await {
received.push(message.to_string());
}
server.verify().await;
assert_eq!(vec!["heartbeat"], received);
server.verify().await;
}
Trait Implementations§
Auto Trait Implementations§
impl Freeze for JsonExact
impl RefUnwindSafe for JsonExact
impl Send for JsonExact
impl Sync for JsonExact
impl Unpin for JsonExact
impl UnwindSafe for JsonExact
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more