From bf285b4252064e724741e770cc2822a7a33b90ad Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sat, 6 Jun 2020 14:32:12 +0100 Subject: bindings: Verify that the correct error is returned from Bindings::find() Signed-off-by: Daniel Silverstone --- src/bindings.rs | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/bindings.rs b/src/bindings.rs index 510584d..40ef0b4 100644 --- a/src/bindings.rs +++ b/src/bindings.rs @@ -438,7 +438,10 @@ mod test_bindings { let binding = Binding::new(StepKind::When, r"I am Tomjon", "set_foo", None).unwrap(); let mut bindings = Bindings::new(); bindings.add(binding); - assert!(bindings.find(&step).is_err()); + assert!(match bindings.find(&step) { + Err(SubplotError::BindingUnknown(_)) => true, + _ => false, + }); } #[test] @@ -448,7 +451,30 @@ mod test_bindings { Binding::new(StepKind::Given, r"I am Tomjon of Lancre", "set_foo", None).unwrap(); let mut bindings = Bindings::new(); bindings.add(binding); - assert!(bindings.find(&step).is_err()); + assert!(match bindings.find(&step) { + Err(SubplotError::BindingUnknown(_)) => true, + _ => false, + }); + } + + #[test] + fn two_matching_bindings() { + let step = ScenarioStep::new(StepKind::Given, "given", "I am Tomjon"); + let mut bindings = Bindings::default(); + bindings.add(Binding::new(StepKind::Given, r"I am Tomjon", "set_foo", None).unwrap()); + bindings.add( + Binding::new( + StepKind::Given, + &super::regex_from_simple_pattern(r"I am {name}", false).unwrap(), + "set_foo", + None, + ) + .unwrap(), + ); + assert!(match bindings.find(&step) { + Err(SubplotError::BindingNotUnique(_)) => true, + _ => false, + }); } #[test] -- cgit v1.2.1