blob: b72b0be28566ad82360812e55d179007708aa055 [file] [log] [blame]
#[test]
fn smoke() {
let mut buf = String::new();
{
let mut obj = write_json::object(&mut buf);
obj.string("name", "Peter").number("favorite number", 92.0);
obj.array("films")
.string("Drowning By Numbers")
.string("A Zed & Two Noughts");
obj.null("suitcase");
}
assert_eq!(
buf,
r#"{"name":"Peter","favorite number":92,"films":["Drowning By Numbers","A Zed & Two Noughts"],"suitcase":null}"#
)
}
#[test]
fn string_escaping() {
let mut buf = String::new();
{
write_json::array(&mut buf)
.string("")
.string("'")
.string("\"")
.string("\\")
.string("hello world")
.string(" \r\n\t\\ \\r\\n\\t")
.string("❤😂")
.string("\x00\x07\x1F\x20\x7E\x7F\u{80}\u{9f}!")
.string("\x7F!")
.string("Ċ");
}
let strings = buf.replace(|c: char| "[],".contains(c), "\n");
let expected = r#"
""
"'"
"\""
"\\"
"hello world"
" \r\n\t\\ \\r\\n\\t"
"❤😂"
"\u0000\u0007\u001F ~\u007F\u0080\u009F!"
"\u007F!"
"Ċ"
"#;
assert_eq!(strings, expected);
}