Update serialization tests
This commit is contained in:
parent
0c775de766
commit
9092f7d6d8
@ -84,86 +84,65 @@ fn serialize_unit_type() {
|
|||||||
assert_eq!(urlencoded::to_string(()), Ok("".to_owned()));
|
assert_eq!(urlencoded::to_string(()), Ok("".to_owned()));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize)]
|
|
||||||
struct Wrapper<T> {
|
|
||||||
item: T,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Serialize)]
|
|
||||||
struct NewStruct {
|
|
||||||
list: Vec<String>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Serialize)]
|
|
||||||
struct Struct {
|
|
||||||
list: Vec<Option<String>>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Serialize)]
|
|
||||||
struct ListStruct {
|
|
||||||
list: Vec<NewType<usize>>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn serialize_newstruct() {
|
fn serialize_list_of_str() {
|
||||||
let s = NewStruct {
|
let s = &[("list", vec!["hello", "world"])];
|
||||||
list: vec!["hello".into(), "world".into()],
|
|
||||||
};
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
"list=hello&list=world".to_string(),
|
urlencoded::to_string(s),
|
||||||
urlencoded::to_string(s).unwrap()
|
Ok("list=hello&list=world".to_owned())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn serialize_vec_bool() {
|
fn serialize_multiple_lists() {
|
||||||
let params = Wrapper {
|
#[derive(Serialize)]
|
||||||
item: vec![true, false, false],
|
struct Lists {
|
||||||
|
xs: Vec<bool>,
|
||||||
|
ys: Vec<u32>,
|
||||||
|
}
|
||||||
|
|
||||||
|
let params = Lists {
|
||||||
|
xs: vec![true, false],
|
||||||
|
ys: vec![3, 2, 1],
|
||||||
};
|
};
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
urlencoded::to_string(params).unwrap(),
|
urlencoded::to_string(params),
|
||||||
"item=true&item=false&item=false".to_owned()
|
Ok("xs=true&xs=false&ys=3&ys=2&ys=1".to_owned())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn serialize_vec_num() {
|
fn serialize_vec_num() {
|
||||||
let params = Wrapper {
|
let params = [("item", vec![0, 1, 2])];
|
||||||
item: vec![0, 1, 2],
|
|
||||||
};
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
urlencoded::to_string(params).unwrap(),
|
urlencoded::to_string(params),
|
||||||
"item=0&item=1&item=2".to_owned()
|
Ok("item=0&item=1&item=2".to_owned())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn serialize_vec_str() {
|
fn serialize_vec_str() {
|
||||||
let params = Wrapper {
|
let params = &[("item", vec!["hello", "world", "hello"])];
|
||||||
item: vec!["hello", "world", "hello"],
|
|
||||||
};
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
urlencoded::to_string(params).unwrap(),
|
urlencoded::to_string(params),
|
||||||
"item=hello&item=world&item=hello".to_owned()
|
Ok("item=hello&item=world&item=hello".to_owned())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn serialize_struct_opt() {
|
fn serialize_struct_opt() {
|
||||||
let s = Struct {
|
let s = &[("list", vec![Some("hello"), Some("world")])];
|
||||||
list: vec![Some("hello".into()), Some("world".into())],
|
|
||||||
};
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
"list=hello&list=world".to_string(),
|
urlencoded::to_string(s),
|
||||||
urlencoded::to_string(s).unwrap()
|
Ok("list=hello&list=world".to_string())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn serialize_struct_newtype() {
|
fn serialize_struct_newtype() {
|
||||||
let s = ListStruct {
|
let s = &[("list", vec![NewType(0), NewType(1)])];
|
||||||
list: vec![NewType(0), NewType(1)],
|
|
||||||
};
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
"list=0&list=1".to_string(),
|
"list=0&list=1".to_string(),
|
||||||
urlencoded::to_string(s).unwrap()
|
urlencoded::to_string(s).unwrap()
|
||||||
@ -172,9 +151,7 @@ fn serialize_struct_newtype() {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn serialize_struct_unit_enum() {
|
fn serialize_struct_unit_enum() {
|
||||||
let params = Wrapper {
|
let params = &[("item", vec![X::A, X::B, X::C])];
|
||||||
item: vec![X::A, X::B, X::C],
|
|
||||||
};
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
urlencoded::to_string(params),
|
urlencoded::to_string(params),
|
||||||
Ok("item=A&item=B&item=C".to_owned())
|
Ok("item=A&item=B&item=C".to_owned())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user