summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSam Scott <sam@osohq.com>2022-07-13 10:30:29 -0500
committerSam Scott <sam@osohq.com>2022-07-13 10:30:29 -0500
commitc446c5f6d8853e63dca8e666bd502c8e5fa5337d (patch)
tree8e3411eacae71553307e8b509d3471d780483cee /tests
parent0459c5e88e90e297ddb916ab96e62cdfaf7c3414 (diff)
Add a standalone serializer.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_serialize.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/test_serialize.rs b/tests/test_serialize.rs
index ddb7277..b7c4a21 100644
--- a/tests/test_serialize.rs
+++ b/tests/test_serialize.rs
@@ -202,3 +202,37 @@ fn serialize_hashmap_keys() {
|| s == "attrs[key+2%21]=val+2&attrs[key+1%21]=val+1"
);
}
+
+#[test]
+fn test_serializer() {
+ use serde::Serialize;
+ #[derive(Serialize, Debug, Clone)]
+ struct Query {
+ a: Vec<u8>,
+ b: &'static str,
+ }
+
+ let mut writer = Vec::new();
+ {
+ let serializer = &mut qs::Serializer::new(&mut writer);
+ let q = Query {
+ a: vec![0, 1],
+ b: "b",
+ };
+ q.serialize(serializer).unwrap();
+ }
+
+ assert_eq!(writer, b"a[0]=0&a[1]=1&b=b");
+ writer.clear();
+
+ {
+ let serializer = &mut qs::Serializer::new(&mut writer);
+ let q = Query {
+ a: vec![3, 2],
+ b: "a",
+ };
+ q.serialize(serializer).unwrap();
+ }
+
+ assert_eq!(writer, b"a[0]=3&a[1]=2&b=a");
+}