Add test for error kind mapping
This commit is contained in:
parent
320c1e4bd8
commit
5c8dbac34d
1 changed files with 44 additions and 0 deletions
|
@ -324,4 +324,48 @@ mod test {
|
|||
assert_eq!(TestErrorKind::TestErrorKindA, e.err_type());
|
||||
assert_eq!(String::from("[testerrorkind B]"), format!("{}", e.cause().unwrap()));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_error_kind_mapping() {
|
||||
use std::io::{Error, ErrorKind};
|
||||
use self::error::{OkOrErr, MapErrInto};
|
||||
use self::error::TestErrorKind;
|
||||
|
||||
let err : Result<(), _> = Err(Error::new(ErrorKind::Other, ""));
|
||||
let err : Result<(), _> = err.map_err_into(TestErrorKind::TestErrorKindA);
|
||||
|
||||
assert!(err.is_err());
|
||||
let err = err.unwrap_err();
|
||||
|
||||
match err.err_type() {
|
||||
TestErrorKind::TestErrorKindA => assert!(true),
|
||||
_ => assert!(false),
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_error_kind_double_mapping() {
|
||||
use std::io::{Error, ErrorKind};
|
||||
use self::error::{OkOrErr, MapErrInto};
|
||||
use self::error::TestErrorKind;
|
||||
|
||||
let err : Result<(), _> = Err(Error::new(ErrorKind::Other, ""));
|
||||
let err : Result<(), _> = err.map_err_into(TestErrorKind::TestErrorKindA)
|
||||
.map_err_into(TestErrorKind::TestErrorKindB);
|
||||
|
||||
assert!(err.is_err());
|
||||
let err = err.unwrap_err();
|
||||
match err.err_type() {
|
||||
TestErrorKind::TestErrorKindB => assert!(true),
|
||||
_ => assert!(false),
|
||||
}
|
||||
|
||||
// not sure how to test that the inner error is of TestErrorKindA, actually...
|
||||
match err.cause() {
|
||||
Some(_) => assert!(true),
|
||||
None => assert!(false),
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue