Skip to content

Commit f01f908

Browse files
authored
Merge pull request dtolnay#158 from BramBonne/chain-tests
Increase Chain test coverage.
2 parents e9e706c + 6050c73 commit f01f908

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

tests/test_chain.rs

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use anyhow::{anyhow, Error};
1+
use anyhow::{anyhow, Chain, Error};
22

33
fn error() -> Error {
44
anyhow!(0).context(1).context(2).context(3)
@@ -33,13 +33,36 @@ fn test_len() {
3333
let e = error();
3434
let mut chain = e.chain();
3535
assert_eq!(4, chain.len());
36+
assert_eq!((4, Some(4)), chain.size_hint());
3637
assert_eq!("3", chain.next().unwrap().to_string());
3738
assert_eq!(3, chain.len());
39+
assert_eq!((3, Some(3)), chain.size_hint());
3840
assert_eq!("0", chain.next_back().unwrap().to_string());
3941
assert_eq!(2, chain.len());
42+
assert_eq!((2, Some(2)), chain.size_hint());
4043
assert_eq!("2", chain.next().unwrap().to_string());
4144
assert_eq!(1, chain.len());
45+
assert_eq!((1, Some(1)), chain.size_hint());
4246
assert_eq!("1", chain.next_back().unwrap().to_string());
4347
assert_eq!(0, chain.len());
48+
assert_eq!((0, Some(0)), chain.size_hint());
4449
assert!(chain.next().is_none());
4550
}
51+
52+
#[test]
53+
fn test_default() {
54+
let mut c: Chain = Default::default();
55+
assert!(c.next().is_none());
56+
}
57+
58+
#[test]
59+
fn test_clone() {
60+
let e = error();
61+
let mut chain = e.chain().clone();
62+
assert_eq!("3", chain.next().unwrap().to_string());
63+
assert_eq!("2", chain.next().unwrap().to_string());
64+
assert_eq!("1", chain.next().unwrap().to_string());
65+
assert_eq!("0", chain.next().unwrap().to_string());
66+
assert!(chain.next().is_none());
67+
assert!(chain.next_back().is_none());
68+
}

0 commit comments

Comments
 (0)