Assert that numeric field identifiers correctly deserialized (now failing)
This commit is contained in:
parent
8084258a3e
commit
f6eb34a830
@ -622,6 +622,24 @@ declare_tests! {
|
|||||||
Token::I32(2),
|
Token::I32(2),
|
||||||
Token::MapEnd,
|
Token::MapEnd,
|
||||||
],
|
],
|
||||||
|
Struct { a: 1, b: 2, c: 0 } => &[
|
||||||
|
Token::Map { len: Some(3) },
|
||||||
|
Token::U8(0),
|
||||||
|
Token::I32(1),
|
||||||
|
|
||||||
|
Token::U8(1),
|
||||||
|
Token::I32(2),
|
||||||
|
Token::MapEnd,
|
||||||
|
],
|
||||||
|
Struct { a: 1, b: 2, c: 0 } => &[
|
||||||
|
Token::Map { len: Some(3) },
|
||||||
|
Token::U16(0),
|
||||||
|
Token::I32(1),
|
||||||
|
|
||||||
|
Token::U16(1),
|
||||||
|
Token::I32(2),
|
||||||
|
Token::MapEnd,
|
||||||
|
],
|
||||||
Struct { a: 1, b: 2, c: 0 } => &[
|
Struct { a: 1, b: 2, c: 0 } => &[
|
||||||
Token::Map { len: Some(3) },
|
Token::Map { len: Some(3) },
|
||||||
Token::U32(0),
|
Token::U32(0),
|
||||||
@ -631,6 +649,34 @@ declare_tests! {
|
|||||||
Token::I32(2),
|
Token::I32(2),
|
||||||
Token::MapEnd,
|
Token::MapEnd,
|
||||||
],
|
],
|
||||||
|
Struct { a: 1, b: 2, c: 0 } => &[
|
||||||
|
Token::Map { len: Some(3) },
|
||||||
|
Token::U64(0),
|
||||||
|
Token::I32(1),
|
||||||
|
|
||||||
|
Token::U64(1),
|
||||||
|
Token::I32(2),
|
||||||
|
Token::MapEnd,
|
||||||
|
],
|
||||||
|
// Mixed key types
|
||||||
|
Struct { a: 1, b: 2, c: 0 } => &[
|
||||||
|
Token::Map { len: Some(3) },
|
||||||
|
Token::U8(0),
|
||||||
|
Token::I32(1),
|
||||||
|
|
||||||
|
Token::U64(1),
|
||||||
|
Token::I32(2),
|
||||||
|
Token::MapEnd,
|
||||||
|
],
|
||||||
|
Struct { a: 1, b: 2, c: 0 } => &[
|
||||||
|
Token::Map { len: Some(3) },
|
||||||
|
Token::U8(0),
|
||||||
|
Token::I32(1),
|
||||||
|
|
||||||
|
Token::Str("b"),
|
||||||
|
Token::I32(2),
|
||||||
|
Token::MapEnd,
|
||||||
|
],
|
||||||
Struct { a: 1, b: 2, c: 0 } => &[
|
Struct { a: 1, b: 2, c: 0 } => &[
|
||||||
Token::Struct { name: "Struct", len: 2 },
|
Token::Struct { name: "Struct", len: 2 },
|
||||||
Token::Str("a"),
|
Token::Str("a"),
|
||||||
@ -663,6 +709,21 @@ declare_tests! {
|
|||||||
Token::I32(4),
|
Token::I32(4),
|
||||||
Token::MapEnd,
|
Token::MapEnd,
|
||||||
],
|
],
|
||||||
|
Struct { a: 1, b: 2, c: 0 } => &[
|
||||||
|
Token::Map { len: Some(3) },
|
||||||
|
Token::U8(0),
|
||||||
|
Token::I32(1),
|
||||||
|
|
||||||
|
Token::U16(1),
|
||||||
|
Token::I32(2),
|
||||||
|
|
||||||
|
Token::U32(2),
|
||||||
|
Token::I32(3),
|
||||||
|
|
||||||
|
Token::U64(3),
|
||||||
|
Token::I32(4),
|
||||||
|
Token::MapEnd,
|
||||||
|
],
|
||||||
Struct { a: 1, b: 2, c: 0 } => &[
|
Struct { a: 1, b: 2, c: 0 } => &[
|
||||||
Token::Struct { name: "Struct", len: 2 },
|
Token::Struct { name: "Struct", len: 2 },
|
||||||
Token::Str("a"),
|
Token::Str("a"),
|
||||||
@ -780,6 +841,26 @@ declare_tests! {
|
|||||||
Token::Str("Unit"),
|
Token::Str("Unit"),
|
||||||
Token::Unit,
|
Token::Unit,
|
||||||
],
|
],
|
||||||
|
EnumOther::Unit => &[
|
||||||
|
Token::Enum { name: "EnumOther" },
|
||||||
|
Token::U8(0),
|
||||||
|
Token::Unit,
|
||||||
|
],
|
||||||
|
EnumOther::Unit => &[
|
||||||
|
Token::Enum { name: "EnumOther" },
|
||||||
|
Token::U16(0),
|
||||||
|
Token::Unit,
|
||||||
|
],
|
||||||
|
EnumOther::Unit => &[
|
||||||
|
Token::Enum { name: "EnumOther" },
|
||||||
|
Token::U32(0),
|
||||||
|
Token::Unit,
|
||||||
|
],
|
||||||
|
EnumOther::Unit => &[
|
||||||
|
Token::Enum { name: "EnumOther" },
|
||||||
|
Token::U64(0),
|
||||||
|
Token::Unit,
|
||||||
|
],
|
||||||
}
|
}
|
||||||
test_enum_other {
|
test_enum_other {
|
||||||
EnumOther::Other => &[
|
EnumOther::Other => &[
|
||||||
@ -787,6 +868,26 @@ declare_tests! {
|
|||||||
Token::Str("Foo"),
|
Token::Str("Foo"),
|
||||||
Token::Unit,
|
Token::Unit,
|
||||||
],
|
],
|
||||||
|
EnumOther::Other => &[
|
||||||
|
Token::Enum { name: "EnumOther" },
|
||||||
|
Token::U8(42),
|
||||||
|
Token::Unit,
|
||||||
|
],
|
||||||
|
EnumOther::Other => &[
|
||||||
|
Token::Enum { name: "EnumOther" },
|
||||||
|
Token::U16(42),
|
||||||
|
Token::Unit,
|
||||||
|
],
|
||||||
|
EnumOther::Other => &[
|
||||||
|
Token::Enum { name: "EnumOther" },
|
||||||
|
Token::U32(42),
|
||||||
|
Token::Unit,
|
||||||
|
],
|
||||||
|
EnumOther::Other => &[
|
||||||
|
Token::Enum { name: "EnumOther" },
|
||||||
|
Token::U64(42),
|
||||||
|
Token::Unit,
|
||||||
|
],
|
||||||
}
|
}
|
||||||
test_box {
|
test_box {
|
||||||
Box::new(0i32) => &[Token::I32(0)],
|
Box::new(0i32) => &[Token::I32(0)],
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
//! Tests for `#[serde(field_identifier)]` and `#[serde(variant_identifier)]`
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use serde_test::{assert_de_tokens, Token};
|
use serde_test::{assert_de_tokens, Token};
|
||||||
|
|
||||||
@ -27,6 +28,10 @@ fn test_field_identifier() {
|
|||||||
Bbb,
|
Bbb,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert_de_tokens(&F::Aaa, &[Token::U8(0)]);
|
||||||
|
assert_de_tokens(&F::Aaa, &[Token::U16(0)]);
|
||||||
|
assert_de_tokens(&F::Aaa, &[Token::U32(0)]);
|
||||||
|
assert_de_tokens(&F::Aaa, &[Token::U64(0)]);
|
||||||
assert_de_tokens(&F::Aaa, &[Token::Str("aaa")]);
|
assert_de_tokens(&F::Aaa, &[Token::Str("aaa")]);
|
||||||
assert_de_tokens(&F::Aaa, &[Token::Bytes(b"aaa")]);
|
assert_de_tokens(&F::Aaa, &[Token::Bytes(b"aaa")]);
|
||||||
}
|
}
|
||||||
@ -42,6 +47,10 @@ fn test_unit_fallthrough() {
|
|||||||
Other,
|
Other,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert_de_tokens(&F::Other, &[Token::U8(42)]);
|
||||||
|
assert_de_tokens(&F::Other, &[Token::U16(42)]);
|
||||||
|
assert_de_tokens(&F::Other, &[Token::U32(42)]);
|
||||||
|
assert_de_tokens(&F::Other, &[Token::U64(42)]);
|
||||||
assert_de_tokens(&F::Other, &[Token::Str("x")]);
|
assert_de_tokens(&F::Other, &[Token::Str("x")]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,5 +77,9 @@ fn test_newtype_fallthrough_generic() {
|
|||||||
Other(T),
|
Other(T),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert_de_tokens(&F::Other(42u8), &[Token::U8(42)]);
|
||||||
|
assert_de_tokens(&F::Other(42u16), &[Token::U16(42)]);
|
||||||
|
assert_de_tokens(&F::Other(42u32), &[Token::U32(42)]);
|
||||||
|
assert_de_tokens(&F::Other(42u64), &[Token::U64(42)]);
|
||||||
assert_de_tokens(&F::Other("x".to_owned()), &[Token::Str("x")]);
|
assert_de_tokens(&F::Other("x".to_owned()), &[Token::Str("x")]);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user