diff options
author | Sam Scott <sam@osohq.com> | 2020-06-23 13:37:04 -0400 |
---|---|---|
committer | Sam Scott <sam@osohq.com> | 2020-06-23 13:37:04 -0400 |
commit | 165b80ddd4736ac0e89130bc8a30d714b9a8e6c1 (patch) | |
tree | 874bd6f99d2ed5a473fcf68c25e6c91fb33e440d /tests | |
parent | 18b2d31600be739f8e67d3b07e19d812361a43d2 (diff) |
Add unsupported test case
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_deserialize.rs | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/tests/test_deserialize.rs b/tests/test_deserialize.rs index 213a3fa..bac2948 100644 --- a/tests/test_deserialize.rs +++ b/tests/test_deserialize.rs @@ -398,18 +398,42 @@ fn seq_of_struct() { #[derive(Deserialize, Debug, PartialEq)] struct Test { a: u8, + b: u8 } #[derive(Deserialize, Debug, PartialEq)] struct Query { - b: Vec<Test>, + elements: Vec<Test>, } - let params = "b[0][a]=1&b[1][a]=2"; + let params = "elements[0][a]=1&elements[0][b]=3&elements[1][a]=2&elements[1][b]=4"; let rec_params: Query = qs::from_str(params).unwrap(); assert_eq!( rec_params, Query { - b: vec![Test { a: 1 }, Test { a: 2 }] + elements: vec![Test { a: 1, b: 3 }, Test { a: 2, b: 4 }] + } + ); +} + +#[should_panic] +#[test] +fn unsupported_seq_of_struct() { + #[derive(Deserialize, Debug, PartialEq)] + struct Test { + a: u8, + b: u8 + } + #[derive(Deserialize, Debug, PartialEq)] + struct Query { + elements: Vec<Test>, + } + + let params = "elements[][a]=1&elements[][b]=3&elements[][a]=2&elements[][b]=4"; + let rec_params: Query = qs::from_str(params).unwrap(); + assert_eq!( + rec_params, + Query { + elements: vec![Test { a: 1, b: 3 }, Test { a: 2, b: 4 }] } ); } @@ -604,3 +628,8 @@ fn deserialize_plus() { let test: Test = serde_qs::from_str("email=a%2Bb%40c.com").unwrap(); assert_eq!(test.email, "a+b@c.com"); } + +#[test] +fn deserialize_vec_of_structs() { + +} |