diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2020-06-06 14:32:12 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2020-06-06 15:53:15 +0100 |
commit | bf285b4252064e724741e770cc2822a7a33b90ad (patch) | |
tree | 3531d7b592f4c33c295076706f48026ea9a14d0b | |
parent | 3842e769624a2dc3cca5b77269e3ea04e4491d15 (diff) | |
download | subplot-bf285b4252064e724741e770cc2822a7a33b90ad.tar.gz |
bindings: Verify that the correct error is returned from Bindings::find()
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
-rw-r--r-- | src/bindings.rs | 30 |
1 files 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] |