Skip to content

Commit 8d86e90

Browse files
committed
Add regression test for tafia#683
failures: issue683
1 parent 2771aeb commit 8d86e90

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

tests/serde-issues.rs

+32
Original file line numberDiff line numberDiff line change
@@ -462,3 +462,35 @@ fn issue580() {
462462
}
463463
);
464464
}
465+
466+
/// Regression test for https://github.com/tafia/quick-xml/issues/683.
467+
#[test]
468+
fn issue683() {
469+
#[derive(Deserialize, Debug, PartialEq)]
470+
enum ScheduleLocation {
471+
#[serde(rename = "DT")]
472+
Destination,
473+
}
474+
475+
#[derive(Deserialize, Debug, PartialEq)]
476+
#[allow(non_snake_case)]
477+
struct Schedule {
478+
cancelReason: Option<u32>,
479+
#[serde(rename = "$value")]
480+
locations: Vec<ScheduleLocation>,
481+
}
482+
let xml = r#"
483+
<schedule xmlns:ns2="http://www.thalesgroup.com/rtti/PushPort/Schedules/v3">
484+
<ns2:DT/>
485+
<ns2:cancelReason>918</ns2:cancelReason>
486+
</schedule>"#;
487+
let result = quick_xml::de::from_str::<Schedule>(xml);
488+
dbg!(&result);
489+
assert_eq!(
490+
result.unwrap(),
491+
Schedule {
492+
cancelReason: Some(918),
493+
locations: vec![ScheduleLocation::Destination],
494+
}
495+
);
496+
}

0 commit comments

Comments
 (0)