Skip to content

Commit 1a9ffdb

Browse files
authored
Merge pull request #2788 from Mingun/internally-tagged-enum-tests
Consolidate and add new tests of internally tagged enums
2 parents af376c2 + 2adb0e9 commit 1a9ffdb

File tree

3 files changed

+1478
-756
lines changed

3 files changed

+1478
-756
lines changed

test_suite/tests/test_annotations.rs

-133
Original file line numberDiff line numberDiff line change
@@ -1607,58 +1607,6 @@ fn test_collect_other() {
16071607
);
16081608
}
16091609

1610-
#[test]
1611-
fn test_internally_tagged_enum_with_skipped_conflict() {
1612-
#[derive(Serialize, Deserialize, PartialEq, Debug)]
1613-
#[serde(tag = "t")]
1614-
enum Data {
1615-
A,
1616-
#[serde(skip)]
1617-
#[allow(dead_code)]
1618-
B {
1619-
t: String,
1620-
},
1621-
C {
1622-
#[serde(default, skip)]
1623-
t: String,
1624-
},
1625-
}
1626-
1627-
let data = Data::C { t: String::new() };
1628-
1629-
assert_tokens(
1630-
&data,
1631-
&[
1632-
Token::Struct {
1633-
name: "Data",
1634-
len: 1,
1635-
},
1636-
Token::Str("t"),
1637-
Token::Str("C"),
1638-
Token::StructEnd,
1639-
],
1640-
);
1641-
}
1642-
1643-
#[test]
1644-
fn test_internally_tagged_enum_new_type_with_unit() {
1645-
#[derive(Serialize, Deserialize, PartialEq, Debug)]
1646-
#[serde(tag = "t")]
1647-
enum Data {
1648-
A(()),
1649-
}
1650-
1651-
assert_tokens(
1652-
&Data::A(()),
1653-
&[
1654-
Token::Map { len: Some(1) },
1655-
Token::Str("t"),
1656-
Token::Str("A"),
1657-
Token::MapEnd,
1658-
],
1659-
);
1660-
}
1661-
16621610
#[test]
16631611
fn test_adjacently_tagged_enum_bytes() {
16641612
#[derive(Serialize, Deserialize, PartialEq, Debug)]
@@ -1968,29 +1916,6 @@ fn test_transparent_tuple_struct() {
19681916
assert_tokens(&Transparent(false, 1, false, PhantomData), &[Token::U32(1)]);
19691917
}
19701918

1971-
#[test]
1972-
fn test_internally_tagged_unit_enum_with_unknown_fields() {
1973-
#[derive(Deserialize, PartialEq, Debug)]
1974-
#[serde(tag = "t")]
1975-
enum Data {
1976-
A,
1977-
}
1978-
1979-
let data = Data::A;
1980-
1981-
assert_de_tokens(
1982-
&data,
1983-
&[
1984-
Token::Map { len: None },
1985-
Token::Str("t"),
1986-
Token::Str("A"),
1987-
Token::Str("b"),
1988-
Token::I32(0),
1989-
Token::MapEnd,
1990-
],
1991-
);
1992-
}
1993-
19941919
#[test]
19951920
fn test_expecting_message() {
19961921
#[derive(Deserialize, PartialEq, Debug)]
@@ -2055,27 +1980,6 @@ fn test_expecting_message_externally_tagged_enum() {
20551980
);
20561981
}
20571982

2058-
#[test]
2059-
fn test_expecting_message_internally_tagged_enum() {
2060-
#[derive(Deserialize)]
2061-
#[serde(tag = "tag")]
2062-
#[serde(expecting = "something strange...")]
2063-
enum Enum {
2064-
InternallyTagged,
2065-
}
2066-
2067-
assert_de_tokens_error::<Enum>(
2068-
&[Token::Str("InternallyTagged")],
2069-
r#"invalid type: string "InternallyTagged", expected something strange..."#,
2070-
);
2071-
2072-
// Check that #[serde(expecting = "...")] doesn't affect variant identifier error message
2073-
assert_de_tokens_error::<Enum>(
2074-
&[Token::Map { len: None }, Token::Str("tag"), Token::Unit],
2075-
"invalid type: unit value, expected variant identifier",
2076-
);
2077-
}
2078-
20791983
#[test]
20801984
fn test_expecting_message_adjacently_tagged_enum() {
20811985
#[derive(Deserialize)]
@@ -3123,43 +3027,6 @@ mod flatten {
31233027
mod internally_tagged {
31243028
use super::*;
31253029

3126-
#[test]
3127-
fn straightforward() {
3128-
#[derive(Serialize, Deserialize, PartialEq, Debug)]
3129-
#[serde(tag = "t")]
3130-
enum Data {
3131-
A {
3132-
a: i32,
3133-
#[serde(flatten)]
3134-
flat: Flat,
3135-
},
3136-
}
3137-
3138-
#[derive(Serialize, Deserialize, PartialEq, Debug)]
3139-
struct Flat {
3140-
b: i32,
3141-
}
3142-
3143-
let data = Data::A {
3144-
a: 0,
3145-
flat: Flat { b: 0 },
3146-
};
3147-
3148-
assert_tokens(
3149-
&data,
3150-
&[
3151-
Token::Map { len: None },
3152-
Token::Str("t"),
3153-
Token::Str("A"),
3154-
Token::Str("a"),
3155-
Token::I32(0),
3156-
Token::Str("b"),
3157-
Token::I32(0),
3158-
Token::MapEnd,
3159-
],
3160-
);
3161-
}
3162-
31633030
#[test]
31643031
fn structs() {
31653032
#[derive(Debug, PartialEq, Serialize, Deserialize)]

0 commit comments

Comments
 (0)