diff --git a/lychee-lib/src/chain/mod.rs b/lychee-lib/src/chain/mod.rs index 359983d..2225314 100644 --- a/lychee-lib/src/chain/mod.rs +++ b/lychee-lib/src/chain/mod.rs @@ -37,3 +37,24 @@ impl Chainable for BasicAuth { request } } + +mod test { + use super::Chainable; + + struct Add(i64); + + struct Request(i64); + + impl Chainable for Add { + fn handle(&mut self, req: Request) -> Request { + Request(req.0 + self.0) + } + } + + #[test] + fn example_chain() { + let chain: crate::chain::Chain = vec![Box::new(Add(10)), Box::new(Add(-3))]; + let result = crate::chain::traverse(chain, Request(0)); + assert_eq!(result.0, 7); + } +}