diff --git a/src/Behavioral.Automation/Bindings/DropdownBinding.cs b/src/Behavioral.Automation/Bindings/DropdownBinding.cs index 867981b3..1becbf42 100644 --- a/src/Behavioral.Automation/Bindings/DropdownBinding.cs +++ b/src/Behavioral.Automation/Bindings/DropdownBinding.cs @@ -41,7 +41,7 @@ public void CheckDropdownHeaders([NotNull] IGroupedDropdownWrapper wrapper, [Not CheckDropdownElements(wrapper.GroupTexts, items, $"{wrapper.Caption} groups"); } - [When("(.*?) (contain|not contain) \"(.*)\"")] + [Given("(.*?) (contain|not contain) \"(.*)\"")] [Then("(.*?) should (contain|not contain) \"(.*)\"")] public void CheckDropdownContainsItems( [NotNull] IDropdownWrapper wrapper, @@ -54,6 +54,23 @@ public void CheckDropdownContainsItems( $"{wrapper.Caption} items are {wrapper.Items.Aggregate((x, y) => $"{x}, {y}")}"); } + [Given("the (.*?) (contains|not contains) the following values:")] + [Then("the (.*?) should (contain|not contain) the following values:")] + [Then("the \"(.*?)\" menu should (contain|not contain) the following values:")] + public void CheckDropdownContainsMultipleItems([NotNull] IDropdownWrapper wrapper, [NotNull] string behavior, [NotNull] Table table) + { + Assert.ShouldBecome(()=> table.Rows.Any(),true, + new AssertionBehavior(AssertionType.Immediate, false), "Please provide data in the table"); + + var dropdownItems = wrapper.Items; + foreach (var row in table.Rows) + { + var value = row.Values.FirstOrDefault(); + Assert.ShouldBecome(()=>dropdownItems.Contains(value), !behavior.Contains("not"), + $"{wrapper.Caption} items are {dropdownItems.Aggregate((x, y) => $"{x}, {y}")}"); + } + } + [Then("all items in the (.+?) should (have|not have) \"(.+?)\"")] public void CheckAllItemsContainString( [NotNull] IDropdownWrapper wrapper,