mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-04-22 19:28:01 +00:00
Implement tests for crate::private::de::content::VariantDeserializer
failures (1):
flatten::enum_::externally_tagged::tuple
This commit is contained in:
@@ -2841,11 +2841,66 @@ mod flatten {
|
||||
|
||||
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
||||
enum Enum {
|
||||
Tuple(u32, u32),
|
||||
Struct { index: u32, value: u32 },
|
||||
}
|
||||
|
||||
/// Reaches crate::private::de::content::VariantDeserializer::tuple_variant
|
||||
/// Content::Seq case
|
||||
/// via FlatMapDeserializer::deserialize_enum
|
||||
#[test]
|
||||
fn struct_() {
|
||||
fn tuple() {
|
||||
assert_tokens(
|
||||
&Flatten {
|
||||
data: Enum::Tuple(0, 42),
|
||||
extra: HashMap::from_iter([("extra_key".into(), "extra value".into())]),
|
||||
},
|
||||
&[
|
||||
Token::Map { len: None },
|
||||
Token::Str("Tuple"), // variant
|
||||
Token::Seq { len: Some(2) },
|
||||
Token::U32(0),
|
||||
Token::U32(42),
|
||||
Token::SeqEnd,
|
||||
Token::Str("extra_key"),
|
||||
Token::Str("extra value"),
|
||||
Token::MapEnd,
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
/// Reaches crate::private::de::content::VariantDeserializer::struct_variant
|
||||
/// Content::Seq case
|
||||
/// via FlatMapDeserializer::deserialize_enum
|
||||
#[test]
|
||||
fn struct_from_seq() {
|
||||
assert_de_tokens(
|
||||
&Flatten {
|
||||
data: Enum::Struct {
|
||||
index: 0,
|
||||
value: 42,
|
||||
},
|
||||
extra: HashMap::from_iter([("extra_key".into(), "extra value".into())]),
|
||||
},
|
||||
&[
|
||||
Token::Map { len: None },
|
||||
Token::Str("Struct"), // variant
|
||||
Token::Seq { len: Some(2) },
|
||||
Token::U32(0), // index
|
||||
Token::U32(42), // value
|
||||
Token::SeqEnd,
|
||||
Token::Str("extra_key"),
|
||||
Token::Str("extra value"),
|
||||
Token::MapEnd,
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
/// Reaches crate::private::de::content::VariantDeserializer::struct_variant
|
||||
/// Content::Map case
|
||||
/// via FlatMapDeserializer::deserialize_enum
|
||||
#[test]
|
||||
fn struct_from_map() {
|
||||
assert_tokens(
|
||||
&Flatten {
|
||||
data: Enum::Struct {
|
||||
|
||||
Reference in New Issue
Block a user