More serialization test updates
This commit is contained in:
parent
9092f7d6d8
commit
7aa27c2a2d
@ -19,3 +19,6 @@ itoa = "0.4.5"
|
|||||||
serde = { version = "1.0.106", features = ["derive"] }
|
serde = { version = "1.0.106", features = ["derive"] }
|
||||||
serde_json = "1.0.52"
|
serde_json = "1.0.52"
|
||||||
url = "2.1.1"
|
url = "2.1.1"
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
matches = "0.1.8"
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use ruma_serde::urlencoded;
|
use matches::assert_matches;
|
||||||
|
use ruma_serde::urlencoded::{self, ser::Error};
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use url::form_urlencoded::Serializer as Encoder;
|
use url::form_urlencoded::Serializer as Encoder;
|
||||||
|
|
||||||
@ -86,10 +87,10 @@ fn serialize_unit_type() {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn serialize_list_of_str() {
|
fn serialize_list_of_str() {
|
||||||
let s = &[("list", vec!["hello", "world"])];
|
let params = &[("list", vec!["hello", "world"])];
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
urlencoded::to_string(s),
|
urlencoded::to_string(params),
|
||||||
Ok("list=hello&list=world".to_owned())
|
Ok("list=hello&list=world".to_owned())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -114,43 +115,32 @@ fn serialize_multiple_lists() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn serialize_vec_num() {
|
#[ignore]
|
||||||
let params = [("item", vec![0, 1, 2])];
|
fn serialize_nested_list() {
|
||||||
|
let params = &[("list", vec![vec![0u8]])];
|
||||||
|
assert_matches!(
|
||||||
|
urlencoded::to_string(params),
|
||||||
|
Err(Error::Custom(s)) if s.contains("Unsupported")
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn serialize_list_of_option() {
|
||||||
|
let params = &[("list", vec![Some(10), Some(100)])];
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
urlencoded::to_string(params),
|
urlencoded::to_string(params),
|
||||||
Ok("item=0&item=1&item=2".to_owned())
|
Ok("list=10&list=100".to_owned())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn serialize_vec_str() {
|
fn serialize_list_of_newtype() {
|
||||||
let params = &[("item", vec!["hello", "world", "hello"])];
|
let params = &[("list", vec![NewType("test".to_owned())])];
|
||||||
assert_eq!(
|
assert_eq!(urlencoded::to_string(params), Ok("list=test".to_owned()));
|
||||||
urlencoded::to_string(params),
|
|
||||||
Ok("item=hello&item=world&item=hello".to_owned())
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn serialize_struct_opt() {
|
fn serialize_list_of_enum() {
|
||||||
let s = &[("list", vec![Some("hello"), Some("world")])];
|
|
||||||
assert_eq!(
|
|
||||||
urlencoded::to_string(s),
|
|
||||||
Ok("list=hello&list=world".to_string())
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn serialize_struct_newtype() {
|
|
||||||
let s = &[("list", vec![NewType(0), NewType(1)])];
|
|
||||||
assert_eq!(
|
|
||||||
"list=0&list=1".to_string(),
|
|
||||||
urlencoded::to_string(s).unwrap()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn serialize_struct_unit_enum() {
|
|
||||||
let params = &[("item", vec![X::A, X::B, X::C])];
|
let params = &[("item", vec![X::A, X::B, X::C])];
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
urlencoded::to_string(params),
|
urlencoded::to_string(params),
|
||||||
@ -208,7 +198,7 @@ fn serialize_nested() {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
#[ignore]
|
||||||
fn serialize_nested_list() {
|
fn serialize_nested_object_with_list() {
|
||||||
let mut encoder = Encoder::new(String::new());
|
let mut encoder = Encoder::new(String::new());
|
||||||
|
|
||||||
let s = Nested {
|
let s = Nested {
|
||||||
@ -221,21 +211,3 @@ fn serialize_nested_list() {
|
|||||||
urlencoded::to_string(s).unwrap()
|
urlencoded::to_string(s).unwrap()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
#[ignore]
|
|
||||||
fn serialize_nested_list_option() {
|
|
||||||
let mut encoder = Encoder::new(String::new());
|
|
||||||
|
|
||||||
let s = Nested {
|
|
||||||
item: InnerList {
|
|
||||||
list: vec![Some(1), Some(2), None],
|
|
||||||
},
|
|
||||||
};
|
|
||||||
assert_eq!(
|
|
||||||
encoder
|
|
||||||
.append_pair("item", r#"{"list":[1,2,null]}"#)
|
|
||||||
.finish(),
|
|
||||||
urlencoded::to_string(s).unwrap()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user