Test default error formatting

This commit is contained in:
Dominik Werder
2023-07-10 15:35:01 +02:00
parent 30c7fcb1e5
commit 2054f6c23f
+45 -12
View File
@@ -492,31 +492,64 @@ mod test {
WithStringContentFmt(String), WithStringContentFmt(String),
} }
fn failing_a() -> Result<(), SomeErrorEnumA> { #[derive(Debug, ThisError, Serialize, Deserialize)]
enum SomeErrorEnumB0 {
FromA(#[from] SomeErrorEnumA),
}
#[derive(Debug, ThisError, Serialize, Deserialize)]
enum SomeErrorEnumB1 {
FromA(#[from] SomeErrorEnumA),
#[error("caffe")]
Caffe(SomeErrorEnumA),
}
fn failing_a_00() -> Result<(), SomeErrorEnumA> {
Err(SomeErrorEnumA::BadCase) Err(SomeErrorEnumA::BadCase)
} }
#[test] fn failing_b0_00() -> Result<(), SomeErrorEnumB0> {
fn error_handle_00() { let ret = failing_a_00()?;
assert_eq!(format!("{}", SomeErrorEnumA::BadCase), "BadCase"); Ok(ret)
}
fn failing_b1_00() -> Result<(), SomeErrorEnumB1> {
let ret = failing_a_00()?;
Ok(ret)
} }
#[test] #[test]
fn error_handle_01() { fn error_handle_a_00() {
assert_eq!(format!("{}", SomeErrorEnumA::BadCase), "SomeErrorEnumA::BadCase");
}
#[test]
fn error_handle_a_01() {
assert_eq!( assert_eq!(
format!("{}", SomeErrorEnumA::WithStringContent(format!("inner"))), SomeErrorEnumA::WithStringContent(format!("inner")).to_string(),
"WithStringContent" "SomeErrorEnumA::WithStringContent"
); );
} }
#[test] #[test]
fn error_handle_02() { fn error_handle_a_02() {
assert_eq!( assert_eq!(
format!( SomeErrorEnumA::WithStringContentFmt(format!("inner failure \"quoted\"")).to_string(),
"{}",
SomeErrorEnumA::WithStringContentFmt(format!("inner failure \"quoted\""))
),
"bad: inner failure \"quoted\"" "bad: inner failure \"quoted\""
); );
} }
#[test]
fn error_handle_b0_00() {
let e = failing_b0_00().unwrap_err();
let s = e.to_string();
assert_eq!(s, "SomeErrorEnumB0::FromA(SomeErrorEnumA::BadCase)");
}
#[test]
fn error_handle_b1_00() {
let e = failing_b1_00().unwrap_err();
let s = e.to_string();
assert_eq!(s, "SomeErrorEnumB1::FromA(SomeErrorEnumA::BadCase)");
}
} }