From 17642c3735e3a8474919284a15df94ccec9e4da6 Mon Sep 17 00:00:00 2001 From: Pouya Mobasher Behrouz Date: Mon, 7 Dec 2020 05:38:11 +0330 Subject: Support enum unit variants as map keys (#37) --- tests/test_serialize.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'tests/test_serialize.rs') diff --git a/tests/test_serialize.rs b/tests/test_serialize.rs index f650beb..8aecfe3 100644 --- a/tests/test_serialize.rs +++ b/tests/test_serialize.rs @@ -131,3 +131,28 @@ fn serialize_flatten() { let rec_params = qs::to_string(&query).unwrap(); assert_eq!(rec_params, params); } + +#[test] +fn serialize_map_with_unit_enum_keys() { + use std::collections::HashMap; + + #[derive(Serialize, Eq, PartialEq, Hash)] + enum Operator { + Lt, + Gt, + } + + #[derive(Serialize)] + struct Filter { + point: HashMap, + } + + let mut map = HashMap::new(); + map.insert(Operator::Gt, 123); + map.insert(Operator::Lt, 321); + let test = Filter { point: map }; + + let query = qs::to_string(&test).unwrap(); + + assert!(query == "point[Lt]=321&point[Gt]=123" || query == "point[Gt]=123&point[Lt]=321"); +} -- cgit v1.2.3