use json::JsonValue;
use std::fs::OpenOptions;
use std::io::prelude::*;
#[test]
pub(crate) fn test_read_asterix_json_spec_from_file() {
let mut myfile = match OpenOptions::new()
.read(true)
.write(true)
.create(true)
.open("/tmp/definition.json") {
Ok(f) => f,
Err(_) => panic!("Error opening file"),
};
let mut raw_json = String::new();
myfile.read_to_string(&mut raw_json).unwrap();
let deserialized: JsonValue = match json::parse(&raw_json) {
Ok(d) => d,
Err(_) => panic!("Error deserializing json file content"),
};
for element in deserialized.entries() {
if element.1.members().count() > 0 {
println!("Element key: {}", element.0);
for member in element.1.members() {
for member_element in member.entries(){
println!("Element key: {}, value: {}", member_element.0, member_element.1)
}
}
} else {
println!("Element key: {}, value: {}", element.0, element.1)
}
}
let stringfied = json::stringify_pretty(deserialized.clone(), 4);
println!("Json strinfied: {}", stringfied);
assert_ne!(0, deserialized.len());
}