| #[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); |
| } |