std: add tests for decoding json enums
This commit is contained in:
parent
4d6dcefcbb
commit
4e9a63ff91
1 changed files with 14 additions and 1 deletions
|
@ -851,7 +851,6 @@ impl<'self> serialize::Decoder for Decoder<'self> {
|
||||||
|
|
||||||
fn read_enum<T>(&self, name: &str, f: &fn() -> T) -> T {
|
fn read_enum<T>(&self, name: &str, f: &fn() -> T) -> T {
|
||||||
debug!("read_enum(%s)", name);
|
debug!("read_enum(%s)", name);
|
||||||
if name != ~"option" { fail!(~"only supports the option enum") }
|
|
||||||
f()
|
f()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1720,6 +1719,20 @@ mod tests {
|
||||||
assert_eq!(value, Some(~"jodhpurs"));
|
assert_eq!(value, Some(~"jodhpurs"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_read_enum_no_args() {
|
||||||
|
let decoder = Decoder(from_str(~"\"Dog\"").unwrap());
|
||||||
|
let value: Animal = Decodable::decode(&decoder);
|
||||||
|
assert_eq!(value, Dog);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_read_enum_multiple_args() {
|
||||||
|
let decoder = Decoder(from_str(~"[\"Frog\",\"Henry\",349]").unwrap());
|
||||||
|
let value: Animal = Decodable::decode(&decoder);
|
||||||
|
assert_eq!(value, Frog(~"Henry", 349));
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_multiline_errors() {
|
fn test_multiline_errors() {
|
||||||
assert_eq!(from_str(~"{\n \"foo\":\n \"bar\""),
|
assert_eq!(from_str(~"{\n \"foo\":\n \"bar\""),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue