use super::*;
use serde::Deserialize;
fn lenient_de(xml: &str) -> Deserializer<'_, SliceReader<'_>> {
let mut reader = NsReader::from_str(xml);
reader.config_mut().check_end_names = false;
Deserializer::borrowing(reader)
}
#[test]
fn struct_field_map_accepts_mismatched_end_name() {
#[derive(Debug, Deserialize, PartialEq)]
struct Foo {
a: String,
}
let mut de = lenient_de("<Foo><a>1</a></Bar>");
assert_eq!(
Foo::deserialize(&mut de).expect("should be Ok"),
Foo { a: "1".into() }
);
}
#[test]
fn sequence_field_accepts_mismatched_end_name() {
#[derive(Debug, Deserialize, PartialEq)]
struct FooSeq {
item: Vec<String>,
}
let mut de = lenient_de("<Foo><item>a</item><item>b</item></Bar>");
assert_eq!(
FooSeq::deserialize(&mut de).expect("should be Ok"),
FooSeq {
item: vec!["a".into(), "b".into()]
}
);
}