From 4d8a21c2dd4b94fbc8c23dc3cea2c14a44dae404 Mon Sep 17 00:00:00 2001 From: Thomas Zahner Date: Mon, 11 Mar 2024 16:48:59 +0100 Subject: [PATCH] Test chain --- lychee-lib/src/chain/mod.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) 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); + } +}