From a353a70a1e845a35c885ac1b487cdecb01fdd4a0 Mon Sep 17 00:00:00 2001 From: Sergey Ruzin Date: Tue, 19 Oct 2021 16:46:36 +0300 Subject: [PATCH 1/3] Added dropdown binding with multiple contain check --- .../Bindings/DropdownBinding.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Behavioral.Automation/Bindings/DropdownBinding.cs b/src/Behavioral.Automation/Bindings/DropdownBinding.cs index 867981b3..1a1fdb44 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,22 @@ 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:")] + 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, From a9ec82b9310c958a9e196b145c92d77e053d0b53 Mon Sep 17 00:00:00 2001 From: Sergey Ruzin Date: Tue, 19 Oct 2021 17:45:12 +0300 Subject: [PATCH 2/3] Typo fix --- src/Behavioral.Automation/Bindings/DropdownBinding.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Behavioral.Automation/Bindings/DropdownBinding.cs b/src/Behavioral.Automation/Bindings/DropdownBinding.cs index 1a1fdb44..c586cb99 100644 --- a/src/Behavioral.Automation/Bindings/DropdownBinding.cs +++ b/src/Behavioral.Automation/Bindings/DropdownBinding.cs @@ -66,7 +66,7 @@ public void CheckDropdownContainsMultipleItems([NotNull] IDropdownWrapper wrappe { var value = row.Values.FirstOrDefault(); Assert.ShouldBecome(()=>dropdownItems.Contains(value), !behavior.Contains("not"), - $"{wrapper.Caption} items are {dropdownItems.Aggregate((x, y) => $"{x}, {y}")}");); + $"{wrapper.Caption} items are {dropdownItems.Aggregate((x, y) => $"{x}, {y}")}"); } } From df88cf4de0c58048e1e1d5cbc6f2dd48a60f6e7c Mon Sep 17 00:00:00 2001 From: Sergey Ruzin Date: Fri, 22 Oct 2021 17:14:17 +0300 Subject: [PATCH 3/3] Added third step to address issue from the comment --- src/Behavioral.Automation/Bindings/DropdownBinding.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Behavioral.Automation/Bindings/DropdownBinding.cs b/src/Behavioral.Automation/Bindings/DropdownBinding.cs index c586cb99..1becbf42 100644 --- a/src/Behavioral.Automation/Bindings/DropdownBinding.cs +++ b/src/Behavioral.Automation/Bindings/DropdownBinding.cs @@ -56,6 +56,7 @@ public void CheckDropdownContainsItems( [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,