63 lines
1.5 KiB
Rust
63 lines
1.5 KiB
Rust
extern crate serde_urlencoded;
|
|
#[macro_use]
|
|
extern crate serde_derive;
|
|
|
|
#[test]
|
|
fn deserialize_bytes() {
|
|
let result = vec![("first".to_owned(), 23), ("last".to_owned(), 42)];
|
|
|
|
assert_eq!(serde_urlencoded::from_bytes(b"first=23&last=42"),
|
|
Ok(result));
|
|
}
|
|
|
|
#[test]
|
|
fn deserialize_str() {
|
|
let result = vec![("first".to_owned(), 23), ("last".to_owned(), 42)];
|
|
|
|
assert_eq!(serde_urlencoded::from_str("first=23&last=42"),
|
|
Ok(result));
|
|
}
|
|
|
|
#[test]
|
|
fn deserialize_reader() {
|
|
let result = vec![("first".to_owned(), 23), ("last".to_owned(), 42)];
|
|
|
|
assert_eq!(serde_urlencoded::from_reader(b"first=23&last=42" as &[_]),
|
|
Ok(result));
|
|
}
|
|
|
|
#[test]
|
|
fn deserialize_option() {
|
|
let result = vec![
|
|
("first".to_owned(), Some(23)),
|
|
("last".to_owned(), Some(42)),
|
|
];
|
|
assert_eq!(serde_urlencoded::from_str("first=23&last=42"), Ok(result));
|
|
}
|
|
|
|
#[test]
|
|
fn deserialize_unit() {
|
|
assert_eq!(serde_urlencoded::from_str(""), Ok(()));
|
|
assert_eq!(serde_urlencoded::from_str("&"), Ok(()));
|
|
assert_eq!(serde_urlencoded::from_str("&&"), Ok(()));
|
|
assert!(serde_urlencoded::from_str::<()>("first=23").is_err());
|
|
}
|
|
|
|
#[derive(Deserialize, Debug, PartialEq, Eq)]
|
|
enum X {
|
|
A,
|
|
B,
|
|
C,
|
|
}
|
|
|
|
#[test]
|
|
fn deserialize_unit_enum() {
|
|
let result = vec![
|
|
("one".to_owned(), X::A),
|
|
("two".to_owned(), X::B),
|
|
("three".to_owned(), X::C)
|
|
];
|
|
|
|
assert_eq!(serde_urlencoded::from_str("one=A&two=B&three=C"), Ok(result));
|
|
}
|