diff --git a/testing/tests/test_de.rs b/testing/tests/test_de.rs index 4f455236..6ed9cdb4 100644 --- a/testing/tests/test_de.rs +++ b/testing/tests/test_de.rs @@ -40,6 +40,19 @@ struct StructDenyUnknown { b: i32, } +#[derive(PartialEq, Debug, Deserialize)] +struct StructSkipAll { + #[serde(skip_deserializing)] + a: i32, +} + +#[derive(PartialEq, Debug, Deserialize)] +#[serde(deny_unknown_fields)] +struct StructSkipAllDenyUnknown { + #[serde(skip_deserializing)] + a: i32, +} + #[derive(PartialEq, Debug, Deserialize)] enum Enum { #[allow(dead_code)] @@ -689,6 +702,29 @@ declare_tests! { Token::StructEnd, ], } + test_struct_skip_all { + StructSkipAll { a: 0 } => &[ + Token::StructStart("StructSkipAll", 0), + Token::StructEnd, + ], + StructSkipAll { a: 0 } => &[ + Token::StructStart("StructSkipAll", 1), + Token::StructSep, + Token::Str("a"), + Token::I32(1), + + Token::StructSep, + Token::Str("b"), + Token::I32(2), + Token::StructEnd, + ], + } + test_struct_skip_all_deny_unknown { + StructSkipAllDenyUnknown { a: 0 } => &[ + Token::StructStart("StructSkipAllDenyUnknown", 0), + Token::StructEnd, + ], + } test_enum_unit { Enum::Unit => &[ Token::EnumUnit("Enum", "Unit"), @@ -816,6 +852,14 @@ declare_error_tests! { ], Error::UnknownField("b".to_owned()), } + test_skip_all_deny_unknown { + &[ + Token::StructStart("StructSkipAllDenyUnknown", 1), + Token::StructSep, + Token::Str("a"), + ], + Error::UnknownField("a".to_owned()), + } test_unknown_variant { &[ Token::EnumUnit("Enum", "Foo"),