summaryrefslogtreecommitdiff
path: root/src/bindings.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bindings.rs')
-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]