]> git.proxmox.com Git - rustc.git/blame - vendor/anyhow/tests/test_chain.rs
New upstream version 1.55.0+dfsg1
[rustc.git] / vendor / anyhow / tests / test_chain.rs
CommitLineData
136023e0 1use anyhow::{anyhow, Chain, Error};
dfeec247
XL
2
3fn error() -> Error {
4 anyhow!(0).context(1).context(2).context(3)
5}
6
7#[test]
8fn test_iter() {
9 let e = error();
10 let mut chain = e.chain();
11 assert_eq!("3", chain.next().unwrap().to_string());
12 assert_eq!("2", chain.next().unwrap().to_string());
13 assert_eq!("1", chain.next().unwrap().to_string());
14 assert_eq!("0", chain.next().unwrap().to_string());
15 assert!(chain.next().is_none());
16 assert!(chain.next_back().is_none());
17}
18
19#[test]
20fn test_rev() {
21 let e = error();
22 let mut chain = e.chain().rev();
23 assert_eq!("0", chain.next().unwrap().to_string());
24 assert_eq!("1", chain.next().unwrap().to_string());
25 assert_eq!("2", chain.next().unwrap().to_string());
26 assert_eq!("3", chain.next().unwrap().to_string());
27 assert!(chain.next().is_none());
28 assert!(chain.next_back().is_none());
29}
30
31#[test]
32fn test_len() {
33 let e = error();
34 let mut chain = e.chain();
35 assert_eq!(4, chain.len());
136023e0 36 assert_eq!((4, Some(4)), chain.size_hint());
dfeec247
XL
37 assert_eq!("3", chain.next().unwrap().to_string());
38 assert_eq!(3, chain.len());
136023e0 39 assert_eq!((3, Some(3)), chain.size_hint());
dfeec247
XL
40 assert_eq!("0", chain.next_back().unwrap().to_string());
41 assert_eq!(2, chain.len());
136023e0 42 assert_eq!((2, Some(2)), chain.size_hint());
dfeec247
XL
43 assert_eq!("2", chain.next().unwrap().to_string());
44 assert_eq!(1, chain.len());
136023e0 45 assert_eq!((1, Some(1)), chain.size_hint());
dfeec247
XL
46 assert_eq!("1", chain.next_back().unwrap().to_string());
47 assert_eq!(0, chain.len());
136023e0 48 assert_eq!((0, Some(0)), chain.size_hint());
dfeec247
XL
49 assert!(chain.next().is_none());
50}
136023e0
XL
51
52#[test]
53fn test_default() {
54 let mut c = Chain::default();
55 assert!(c.next().is_none());
56}
57
58#[test]
59fn 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}