Convert test_internally_tagged_enum into module
(review this commit with "ignore whitespace changes" option on)
This commit is contained in:
parent
af376c22c3
commit
aa0654332d
@ -679,8 +679,9 @@ fn test_untagged_enum() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
mod internally_tagged_enum {
|
||||||
fn test_internally_tagged_enum() {
|
use super::*;
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
||||||
struct Newtype(BTreeMap<String, String>);
|
struct Newtype(BTreeMap<String, String>);
|
||||||
|
|
||||||
@ -699,119 +700,137 @@ fn test_internally_tagged_enum() {
|
|||||||
E(Struct),
|
E(Struct),
|
||||||
}
|
}
|
||||||
|
|
||||||
assert_tokens(
|
#[test]
|
||||||
&InternallyTagged::A { a: 1 },
|
fn struct_() {
|
||||||
&[
|
assert_tokens(
|
||||||
Token::Struct {
|
&InternallyTagged::A { a: 1 },
|
||||||
name: "InternallyTagged",
|
&[
|
||||||
len: 2,
|
Token::Struct {
|
||||||
},
|
name: "InternallyTagged",
|
||||||
Token::Str("type"),
|
len: 2,
|
||||||
Token::Str("A"),
|
},
|
||||||
Token::Str("a"),
|
Token::Str("type"),
|
||||||
Token::U8(1),
|
Token::Str("A"),
|
||||||
Token::StructEnd,
|
Token::Str("a"),
|
||||||
],
|
Token::U8(1),
|
||||||
);
|
Token::StructEnd,
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
assert_de_tokens(
|
assert_de_tokens(
|
||||||
&InternallyTagged::A { a: 1 },
|
&InternallyTagged::A { a: 1 },
|
||||||
&[
|
&[
|
||||||
Token::Seq { len: Some(2) },
|
Token::Seq { len: Some(2) },
|
||||||
Token::Str("A"),
|
Token::Str("A"),
|
||||||
Token::U8(1),
|
Token::U8(1),
|
||||||
Token::SeqEnd,
|
Token::SeqEnd,
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
assert_tokens(
|
#[test]
|
||||||
&InternallyTagged::B,
|
fn unit() {
|
||||||
&[
|
assert_tokens(
|
||||||
Token::Struct {
|
&InternallyTagged::B,
|
||||||
name: "InternallyTagged",
|
&[
|
||||||
len: 1,
|
Token::Struct {
|
||||||
},
|
name: "InternallyTagged",
|
||||||
Token::Str("type"),
|
len: 1,
|
||||||
Token::Str("B"),
|
},
|
||||||
Token::StructEnd,
|
Token::Str("type"),
|
||||||
],
|
Token::Str("B"),
|
||||||
);
|
Token::StructEnd,
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
assert_de_tokens(
|
assert_de_tokens(
|
||||||
&InternallyTagged::B,
|
&InternallyTagged::B,
|
||||||
&[Token::Seq { len: Some(1) }, Token::Str("B"), Token::SeqEnd],
|
&[Token::Seq { len: Some(1) }, Token::Str("B"), Token::SeqEnd],
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
assert_tokens(
|
#[test]
|
||||||
&InternallyTagged::C(BTreeMap::new()),
|
fn newtype_map() {
|
||||||
&[
|
assert_tokens(
|
||||||
Token::Map { len: Some(1) },
|
&InternallyTagged::C(BTreeMap::new()),
|
||||||
Token::Str("type"),
|
&[
|
||||||
Token::Str("C"),
|
Token::Map { len: Some(1) },
|
||||||
Token::MapEnd,
|
Token::Str("type"),
|
||||||
],
|
Token::Str("C"),
|
||||||
);
|
Token::MapEnd,
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
assert_de_tokens_error::<InternallyTagged>(
|
assert_de_tokens_error::<InternallyTagged>(
|
||||||
&[
|
&[
|
||||||
Token::Seq { len: Some(2) },
|
Token::Seq { len: Some(2) },
|
||||||
Token::Str("C"),
|
Token::Str("C"),
|
||||||
Token::Map { len: Some(0) },
|
Token::Map { len: Some(0) },
|
||||||
Token::MapEnd,
|
Token::MapEnd,
|
||||||
Token::SeqEnd,
|
Token::SeqEnd,
|
||||||
],
|
],
|
||||||
"invalid type: sequence, expected a map",
|
"invalid type: sequence, expected a map",
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
assert_tokens(
|
#[test]
|
||||||
&InternallyTagged::D(Newtype(BTreeMap::new())),
|
fn newtype_newtype() {
|
||||||
&[
|
assert_tokens(
|
||||||
Token::Map { len: Some(1) },
|
&InternallyTagged::D(Newtype(BTreeMap::new())),
|
||||||
Token::Str("type"),
|
&[
|
||||||
Token::Str("D"),
|
Token::Map { len: Some(1) },
|
||||||
Token::MapEnd,
|
Token::Str("type"),
|
||||||
],
|
Token::Str("D"),
|
||||||
);
|
Token::MapEnd,
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
assert_tokens(
|
#[test]
|
||||||
&InternallyTagged::E(Struct { f: 6 }),
|
fn newtype_struct() {
|
||||||
&[
|
assert_tokens(
|
||||||
Token::Struct {
|
&InternallyTagged::E(Struct { f: 6 }),
|
||||||
name: "Struct",
|
&[
|
||||||
len: 2,
|
Token::Struct {
|
||||||
},
|
name: "Struct",
|
||||||
Token::Str("type"),
|
len: 2,
|
||||||
Token::Str("E"),
|
},
|
||||||
Token::Str("f"),
|
Token::Str("type"),
|
||||||
Token::U8(6),
|
Token::Str("E"),
|
||||||
Token::StructEnd,
|
Token::Str("f"),
|
||||||
],
|
Token::U8(6),
|
||||||
);
|
Token::StructEnd,
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
assert_de_tokens(
|
assert_de_tokens(
|
||||||
&InternallyTagged::E(Struct { f: 6 }),
|
&InternallyTagged::E(Struct { f: 6 }),
|
||||||
&[
|
&[
|
||||||
Token::Seq { len: Some(2) },
|
Token::Seq { len: Some(2) },
|
||||||
Token::Str("E"),
|
Token::Str("E"),
|
||||||
Token::U8(6),
|
Token::U8(6),
|
||||||
Token::SeqEnd,
|
Token::SeqEnd,
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
assert_de_tokens_error::<InternallyTagged>(
|
#[test]
|
||||||
&[Token::Map { len: Some(0) }, Token::MapEnd],
|
fn wrong_tag() {
|
||||||
"missing field `type`",
|
assert_de_tokens_error::<InternallyTagged>(
|
||||||
);
|
&[Token::Map { len: Some(0) }, Token::MapEnd],
|
||||||
|
"missing field `type`",
|
||||||
|
);
|
||||||
|
|
||||||
assert_de_tokens_error::<InternallyTagged>(
|
assert_de_tokens_error::<InternallyTagged>(
|
||||||
&[
|
&[
|
||||||
Token::Map { len: Some(1) },
|
Token::Map { len: Some(1) },
|
||||||
Token::Str("type"),
|
Token::Str("type"),
|
||||||
Token::Str("Z"),
|
Token::Str("Z"),
|
||||||
Token::MapEnd,
|
Token::MapEnd,
|
||||||
],
|
],
|
||||||
"unknown variant `Z`, expected one of `A`, `B`, `C`, `D`, `E`",
|
"unknown variant `Z`, expected one of `A`, `B`, `C`, `D`, `E`",
|
||||||
);
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
Loading…
Reference in New Issue
Block a user