summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2020-06-06 14:32:12 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2020-06-06 15:53:15 +0100
commitbf285b4252064e724741e770cc2822a7a33b90ad (patch)
tree3531d7b592f4c33c295076706f48026ea9a14d0b
parent3842e769624a2dc3cca5b77269e3ea04e4491d15 (diff)
downloadsubplot-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.rs30
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]