use super::{parse, walk};
#[test]
fn should_resolve_to_source_json() {
const JSON: &str = r#"{
"name": "David Byrne",
"hobbies": ["song writing", "thinking about society"]
}"#;
let element = parse(JSON).unwrap();
let mut walk = walk::DepthFirst::new(&element);
let root = walk.next().unwrap();
assert_eq!(root.source_json(JSON), JSON);
let field_name = walk.next().unwrap();
assert_eq!(field_name.source_json(JSON), r#""name": "David Byrne""#);
assert_eq!(field_name.source_json_value(JSON), r#""David Byrne""#);
let field_hobbies = walk.next().unwrap();
assert_eq!(
field_hobbies.source_json(JSON),
r#""hobbies": ["song writing", "thinking about society"]"#
);
assert_eq!(
field_hobbies.source_json_value(JSON),
r#"["song writing", "thinking about society"]"#
);
let hobbies_one = walk.next().unwrap();
assert_eq!(hobbies_one.source_json(JSON), r#""song writing""#);
assert_eq!(hobbies_one.source_json_value(JSON), r#""song writing""#);
let hobbies_two = walk.next().unwrap();
assert_eq!(hobbies_two.source_json(JSON), r#""thinking about society""#);
assert_eq!(
hobbies_two.source_json_value(JSON),
r#""thinking about society""#
);
}