diff options
author | Sam Scott <sam.scott89@gmail.com> | 2017-03-20 20:28:20 +0000 |
---|---|---|
committer | Sam Scott <sam.scott89@gmail.com> | 2017-03-20 20:28:20 +0000 |
commit | d0c1a3ecc4ce648fcd9ecc7f0f6bca4b42872919 (patch) | |
tree | 1736dc189e88102f547e52aaeefd34e11247aae8 /tests | |
parent | 81b77bd7e7f3397ddfeeb9a63f5c74a08fd6837c (diff) |
Add more tests for de/serializing Options.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_deserialize.rs | 14 | ||||
-rw-r--r-- | tests/test_serialize.rs | 22 |
2 files changed, 36 insertions, 0 deletions
diff --git a/tests/test_deserialize.rs b/tests/test_deserialize.rs index 9ef164c..3632c7d 100644 --- a/tests/test_deserialize.rs +++ b/tests/test_deserialize.rs @@ -200,6 +200,13 @@ fn optional_seq() { vec: Option<Vec<u8>>, } + let params = ""; + let query = Query { + vec: None, + }; + let rec_params: Query = qs::from_str(params).unwrap(); + assert_eq!(rec_params, query); + let params = "vec="; let query = Query { vec: None, @@ -222,6 +229,13 @@ fn optional_struct() { address: Option<Address>, } + let params = ""; + let query = Query { + address: None, + }; + let rec_params: Query = qs::from_str(params).unwrap(); + assert_eq!(rec_params, query); + let params = "address="; let query = Query { address: None, diff --git a/tests/test_serialize.rs b/tests/test_serialize.rs index 4a9964a..5751ff6 100644 --- a/tests/test_serialize.rs +++ b/tests/test_serialize.rs @@ -41,3 +41,25 @@ fn serialize_struct() { fn urlencode(input: &str) -> String { str::replace(&str::replace(input, "[", "%5B"), "]", "%5D") } + +#[test] +fn serialize_option() { + #[derive(Debug,Serialize,Deserialize,PartialEq)] + struct Query { + vec: Option<Vec<u8>>, + } + + let params = ""; + let query = Query { + vec: None, + }; + let rec_params = qs::to_string(&query).unwrap(); + assert_eq!(rec_params, params); + + let params = urlencode("vec[0]=1&vec[1]=2"); + let query = Query { + vec: Some(vec![1,2]), + }; + let rec_params = qs::to_string(&query).unwrap(); + assert_eq!(rec_params, params); +} |