Skip to content

Commit c383e4f

Browse files
committed
Tuple: add tests for deserialization from sequence
(review this commit with "ignore whitespace changes" option on)
1 parent a94d875 commit c383e4f

File tree

1 file changed

+71
-45
lines changed

1 file changed

+71
-45
lines changed

test_suite/tests/test_enum_adjacently_tagged.rs

Lines changed: 71 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -437,53 +437,79 @@ fn newtype_with_newtype() {
437437
);
438438
}
439439

440-
#[test]
441-
fn tuple() {
442-
let value = AdjacentlyTagged::Tuple::<u8>(1, 1);
440+
mod tuple {
441+
use super::*;
443442

444-
// tuple with tag first
445-
assert_tokens(
446-
&value,
447-
&[
448-
Token::Struct {
449-
name: "AdjacentlyTagged",
450-
len: 2,
451-
},
452-
Token::Str("t"),
453-
Token::UnitVariant {
454-
name: "AdjacentlyTagged",
455-
variant: "Tuple",
456-
},
457-
Token::Str("c"),
458-
Token::Tuple { len: 2 },
459-
Token::U8(1),
460-
Token::U8(1),
461-
Token::TupleEnd,
462-
Token::StructEnd,
463-
],
464-
);
443+
#[test]
444+
fn map() {
445+
let value = AdjacentlyTagged::Tuple::<u8>(1, 1);
465446

466-
// tuple with content first
467-
assert_de_tokens(
468-
&value,
469-
&[
470-
Token::Struct {
471-
name: "AdjacentlyTagged",
472-
len: 2,
473-
},
474-
Token::Str("c"),
475-
Token::Tuple { len: 2 },
476-
Token::U8(1),
477-
Token::U8(1),
478-
Token::TupleEnd,
479-
Token::Str("t"),
480-
Token::UnitVariant {
481-
name: "AdjacentlyTagged",
482-
variant: "Tuple",
483-
},
484-
Token::StructEnd,
485-
],
486-
);
447+
// Map: tag + content
448+
assert_tokens(
449+
&value,
450+
&[
451+
Token::Struct {
452+
name: "AdjacentlyTagged",
453+
len: 2,
454+
},
455+
Token::Str("t"),
456+
Token::UnitVariant {
457+
name: "AdjacentlyTagged",
458+
variant: "Tuple",
459+
},
460+
Token::Str("c"),
461+
Token::Tuple { len: 2 },
462+
Token::U8(1),
463+
Token::U8(1),
464+
Token::TupleEnd,
465+
Token::StructEnd,
466+
],
467+
);
468+
469+
// Map: content + tag
470+
assert_de_tokens(
471+
&value,
472+
&[
473+
Token::Struct {
474+
name: "AdjacentlyTagged",
475+
len: 2,
476+
},
477+
Token::Str("c"),
478+
Token::Tuple { len: 2 },
479+
Token::U8(1),
480+
Token::U8(1),
481+
Token::TupleEnd,
482+
Token::Str("t"),
483+
Token::UnitVariant {
484+
name: "AdjacentlyTagged",
485+
variant: "Tuple",
486+
},
487+
Token::StructEnd,
488+
],
489+
);
490+
}
491+
492+
#[test]
493+
fn seq() {
494+
let value = AdjacentlyTagged::Tuple::<u8>(1, 1);
495+
496+
// Seq: tag + content
497+
assert_de_tokens(
498+
&value,
499+
&[
500+
Token::Seq { len: Some(2) },
501+
Token::UnitVariant {
502+
name: "AdjacentlyTagged",
503+
variant: "Tuple",
504+
},
505+
Token::Tuple { len: 2 },
506+
Token::U8(1),
507+
Token::U8(1),
508+
Token::TupleEnd,
509+
Token::SeqEnd,
510+
],
511+
);
512+
}
487513
}
488514

489515
#[test]

0 commit comments

Comments
 (0)