From 53c4711d1ac805c993321cca5ec88537ca7e81ac Mon Sep 17 00:00:00 2001 From: Guy Korland Date: Sun, 11 Aug 2019 11:18:07 +0300 Subject: [PATCH] add test for delete --- tests/selector.rs | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/tests/selector.rs b/tests/selector.rs index c8f2da8..81374c7 100644 --- a/tests/selector.rs +++ b/tests/selector.rs @@ -3,7 +3,7 @@ extern crate jsonpath_lib as jsonpath; extern crate serde_json; use common::{read_json, setup}; -use jsonpath::{Selector, SelectorMut, Parser}; +use jsonpath::{Parser, Selector, SelectorMut}; use serde_json::Value; mod common; @@ -61,3 +61,38 @@ fn selector_node_ref() { selector.compiled_path(&node); assert!(std::ptr::eq(selector.node_ref().unwrap(), &node)); } + +#[test] +fn selector_delete() { + setup(); + + let mut selector_mut = SelectorMut::default(); + + let result = selector_mut + .str_path(r#"$.store..price[?(@>13)]"#) + .unwrap() + .value(read_json("./benchmark/example.json")) + .delete() + .unwrap() + .take() + .unwrap(); + + let mut selector = Selector::default(); + let result = selector + .str_path(r#"$.store..price"#) + .unwrap() + .value(&result) + .select() + .unwrap(); + + assert_eq!( + result, + vec![ + &json!(8.95), + &json!(12.99), + &json!(8.99), + &Value::Null, + &Value::Null + ] + ); +}