summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSam Scott <sam.scott89@gmail.com>2017-03-20 20:28:20 +0000
committerSam Scott <sam.scott89@gmail.com>2017-03-20 20:28:20 +0000
commitd0c1a3ecc4ce648fcd9ecc7f0f6bca4b42872919 (patch)
tree1736dc189e88102f547e52aaeefd34e11247aae8 /tests
parent81b77bd7e7f3397ddfeeb9a63f5c74a08fd6837c (diff)
Add more tests for de/serializing Options.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_deserialize.rs14
-rw-r--r--tests/test_serialize.rs22
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);
+}