blob: 8a4390a67bd83a599f190173829be04d3524082b [file] [log] [blame]
use serde_derive::Deserialize;
use std::fs::File;
use std::io::prelude::*;
mod common;
use crate::common::deserializes_to;
#[derive(Deserialize, PartialEq, Debug)]
#[serde(rename_all = "camelCase")]
struct Example {
unquoted: String,
single_quotes: String,
line_breaks: String,
hexadecimal: u32,
leading_decimal_point: f64,
and_trailing: f64,
positive_sign: i32,
trailing_comma: String,
and_in: Vec<String>,
backwards_compatible: String,
}
#[test]
fn serializes_example_from_json5_dot_org() {
let mut contents = String::new();
File::open("tests/assets/json5_dot_org_example.json5")
.unwrap()
.read_to_string(&mut contents)
.unwrap();
let expected = Example {
unquoted: "and you can quote me on that".to_owned(),
single_quotes: "I can use \"double quotes\" here".to_owned(),
line_breaks: "Look, Mom! No \\n's!".to_owned(),
hexadecimal: 0xdecaf,
leading_decimal_point: 0.8675309,
and_trailing: 8675309.0,
positive_sign: 1,
trailing_comma: "in objects".to_owned(),
and_in: vec!["arrays".to_owned()],
backwards_compatible: "with JSON".to_owned(),
};
deserializes_to(&contents, expected)
}