add test for delete

This commit is contained in:
Guy Korland 2019-08-11 11:18:07 +03:00
parent 31612315b8
commit 53c4711d1a

View File

@ -3,7 +3,7 @@ extern crate jsonpath_lib as jsonpath;
extern crate serde_json; extern crate serde_json;
use common::{read_json, setup}; use common::{read_json, setup};
use jsonpath::{Selector, SelectorMut, Parser}; use jsonpath::{Parser, Selector, SelectorMut};
use serde_json::Value; use serde_json::Value;
mod common; mod common;
@ -61,3 +61,38 @@ fn selector_node_ref() {
selector.compiled_path(&node); selector.compiled_path(&node);
assert!(std::ptr::eq(selector.node_ref().unwrap(), &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
]
);
}