aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/serialization.rs20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/serialization.rs b/src/serialization.rs
index f610f6e..028de64 100644
--- a/src/serialization.rs
+++ b/src/serialization.rs
@@ -822,7 +822,7 @@ mod tests {
}
#[test]
- fn errors() {
+ fn type_errors() {
#[deriving(Encodable, Decodable, PartialEq, Show)]
struct Foo { bar: int }
@@ -839,4 +839,22 @@ mod tests {
}
}
}
+
+ #[test]
+ fn missing_errors() {
+ #[deriving(Encodable, Decodable, PartialEq, Show)]
+ struct Foo { bar: int }
+
+ let mut d = Decoder::new(Table(map! {
+ }));
+ let a: Result<Foo, DecodeError> = Decodable::decode(&mut d);
+ match a {
+ Ok(..) => fail!("should not have decoded"),
+ Err(e) => {
+ assert_eq!(e.desc.as_slice(),
+ "for field `bar` expected type `integer`, but \
+ found no value");
+ }
+ }
+ }
}