Update url_deserialize tests
This commit is contained in:
parent
48c5fb1a73
commit
0e627a8ac1
@ -83,19 +83,39 @@ fn deserialize_unit_type() {
|
|||||||
assert_eq!(urlencoded::from_str(""), Ok(()));
|
assert_eq!(urlencoded::from_str(""), Ok(()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Copy, Debug, PartialEq, Deserialize)]
|
||||||
|
struct Params<'a> {
|
||||||
|
a: usize,
|
||||||
|
b: &'a str,
|
||||||
|
c: Option<u8>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn deserialize_struct() {
|
||||||
|
let de = Params {
|
||||||
|
a: 10,
|
||||||
|
b: "Hello",
|
||||||
|
c: None,
|
||||||
|
};
|
||||||
|
assert_eq!(Ok(de), urlencoded::from_str("a=10&b=Hello"));
|
||||||
|
assert_eq!(Ok(de), urlencoded::from_str("b=Hello&a=10"));
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, PartialEq)]
|
#[derive(Debug, Deserialize, PartialEq)]
|
||||||
struct Wrapper<T> {
|
struct Wrapper<T> {
|
||||||
item: T,
|
item: T,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Deserialize)]
|
#[derive(Debug, PartialEq, Deserialize)]
|
||||||
struct NewStruct {
|
struct NewStruct<'a> {
|
||||||
list: Vec<String>,
|
#[serde(borrow)]
|
||||||
|
list: Vec<&'a str>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Deserialize)]
|
#[derive(Debug, PartialEq, Deserialize)]
|
||||||
struct Struct {
|
struct Struct<'a> {
|
||||||
list: Vec<Option<String>>,
|
#[serde(borrow)]
|
||||||
|
list: Vec<Option<&'a str>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Deserialize)]
|
#[derive(Debug, PartialEq, Deserialize)]
|
||||||
@ -108,36 +128,13 @@ struct ListStruct {
|
|||||||
list: Vec<NewType<usize>>,
|
list: Vec<NewType<usize>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Deserialize)]
|
|
||||||
struct MapStruct {
|
|
||||||
a: usize,
|
|
||||||
b: String,
|
|
||||||
c: Option<u8>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn deserialize_mapstruct() {
|
|
||||||
let de = MapStruct {
|
|
||||||
a: 10,
|
|
||||||
b: "Hello".into(),
|
|
||||||
c: None,
|
|
||||||
};
|
|
||||||
assert_eq!(
|
|
||||||
de,
|
|
||||||
urlencoded::from_str::<MapStruct>("a=10&b=Hello").unwrap()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
#[ignore]
|
||||||
fn deserialize_newstruct() {
|
fn deserialize_newstruct() {
|
||||||
let de = NewStruct {
|
let de = NewStruct {
|
||||||
list: vec!["hello".into(), "world".into()],
|
list: vec!["hello", "world"],
|
||||||
};
|
};
|
||||||
assert_eq!(
|
assert_eq!(urlencoded::from_str("list=hello&list=world"), Ok(de));
|
||||||
de,
|
|
||||||
urlencoded::from_str::<NewStruct>("list=hello&list=world").unwrap()
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -146,21 +143,17 @@ fn deserialize_numlist() {
|
|||||||
let de = NumList {
|
let de = NumList {
|
||||||
list: vec![1, 2, 3, 4],
|
list: vec![1, 2, 3, 4],
|
||||||
};
|
};
|
||||||
assert_eq!(
|
assert_eq!(urlencoded::from_str("list=1&list=2&list=3&list=4"), Ok(de));
|
||||||
de,
|
|
||||||
urlencoded::from_str::<NumList>("list=1&list=2&list=3&list=4").unwrap()
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
#[ignore]
|
||||||
fn deserialize_vec_bool() {
|
fn deserialize_vec_bool() {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
Wrapper {
|
urlencoded::from_str("item=true&item=false&item=false"),
|
||||||
|
Ok(Wrapper {
|
||||||
item: vec![true, false, false]
|
item: vec![true, false, false]
|
||||||
},
|
})
|
||||||
urlencoded::from_str::<Wrapper<_>>("item=true&item=false&item=false")
|
|
||||||
.unwrap()
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,15 +161,14 @@ fn deserialize_vec_bool() {
|
|||||||
#[ignore]
|
#[ignore]
|
||||||
fn deserialize_vec_string() {
|
fn deserialize_vec_string() {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
Wrapper {
|
urlencoded::from_str("item=hello&item=matrix&item=hello"),
|
||||||
|
Ok(Wrapper {
|
||||||
item: vec![
|
item: vec![
|
||||||
"hello".to_string(),
|
"hello".to_string(),
|
||||||
"matrix".to_string(),
|
"matrix".to_string(),
|
||||||
"hello".to_string()
|
"hello".to_string()
|
||||||
],
|
],
|
||||||
},
|
})
|
||||||
urlencoded::from_str::<Wrapper<_>>("item=hello&item=matrix&item=hello")
|
|
||||||
.unwrap()
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,10 +188,10 @@ struct Nested<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, PartialEq)]
|
#[derive(Debug, Deserialize, PartialEq)]
|
||||||
struct Inner {
|
struct Inner<'a> {
|
||||||
c: String,
|
c: &'a str,
|
||||||
a: usize,
|
a: usize,
|
||||||
b: String,
|
b: &'a str,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, PartialEq)]
|
#[derive(Debug, Deserialize, PartialEq)]
|
||||||
@ -214,19 +206,18 @@ fn deserialize_nested() {
|
|||||||
|
|
||||||
let nested = Nested {
|
let nested = Nested {
|
||||||
item: Inner {
|
item: Inner {
|
||||||
c: "hello".into(),
|
c: "hello",
|
||||||
a: 10,
|
a: 10,
|
||||||
b: "bye".into(),
|
b: "bye",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
nested,
|
urlencoded::from_str(
|
||||||
urlencoded::from_str::<Nested<Inner>>(
|
|
||||||
&encoder
|
&encoder
|
||||||
.append_pair("item", r#"{"c":"hello","a":10,"b":"bye"}"#)
|
.append_pair("item", r#"{"c":"hello","a":10,"b":"bye"}"#)
|
||||||
.finish(),
|
.finish(),
|
||||||
)
|
),
|
||||||
.unwrap()
|
Ok(nested)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -242,11 +233,10 @@ fn deserialize_nested_list() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
nested,
|
urlencoded::from_str(
|
||||||
urlencoded::from_str::<Nested<InnerList<u8>>>(
|
|
||||||
&encoder.append_pair("item", r#"{"list":[1,2,3]}"#).finish(),
|
&encoder.append_pair("item", r#"{"list":[1,2,3]}"#).finish(),
|
||||||
)
|
),
|
||||||
.unwrap()
|
Ok(nested)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -261,12 +251,11 @@ fn deserialize_nested_list_option() {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
nested,
|
urlencoded::from_str(
|
||||||
urlencoded::from_str::<Nested<InnerList<Option<u8>>>>(
|
|
||||||
&encoder
|
&encoder
|
||||||
.append_pair("item", r#"{"list":[1,2,null]}"#)
|
.append_pair("item", r#"{"list":[1,2,null]}"#)
|
||||||
.finish(),
|
.finish(),
|
||||||
)
|
),
|
||||||
.unwrap()
|
Ok(nested)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user