diff --git a/browse-the-web/src/test/java/net/serenitybdd/screenplay/webtests/WhenDanaBrowsesTheWeb.java b/browse-the-web/src/test/java/net/serenitybdd/screenplay/webtests/WhenDanaBrowsesTheWeb.java index 9047c12010..d638e6367f 100644 --- a/browse-the-web/src/test/java/net/serenitybdd/screenplay/webtests/WhenDanaBrowsesTheWeb.java +++ b/browse-the-web/src/test/java/net/serenitybdd/screenplay/webtests/WhenDanaBrowsesTheWeb.java @@ -66,6 +66,23 @@ public void danaCanMakeAssertionsAboutWebElements() { and(dana).should(seeThat(the(ProfilePage.NAME), isCurrentlyEnabled())); } + @Test + public void danaCanMakeAssertionsAboutWebElementsInTheSameAssertion() { + + Actor dana = new Actor("Dana"); + dana.can(BrowseTheWeb.with(firstBrowser)); + + givenThat(dana).has(openedTheApplication); + + when(dana).attemptsTo(viewHerProfile); + and(dana).attemptsTo(UpdateHerProfile.withName("Dana").andCountryOfResidence("France")); + + then(dana).should(seeThat(the(ProfilePage.NAME), + isVisible(), + isCurrentlyVisible(), + isEnabled())); + } + @Test public void multipleUsersCanUpdateTheirProfilesSimultaneously() { @@ -141,6 +158,9 @@ public void shouldSeeCorrectClientDetails() { seeThat(Client.country(), is(equalTo("France")))); } + + + @Steps OpenTheApplication openedTheApplication; diff --git a/serenity-journey/src/main/java/net/serenitybdd/screenplay/GivenWhenThen.java b/serenity-journey/src/main/java/net/serenitybdd/screenplay/GivenWhenThen.java index 7cb20ff4f5..67ebf26dd1 100644 --- a/serenity-journey/src/main/java/net/serenitybdd/screenplay/GivenWhenThen.java +++ b/serenity-journey/src/main/java/net/serenitybdd/screenplay/GivenWhenThen.java @@ -1,7 +1,10 @@ package net.serenitybdd.screenplay; +import com.beust.jcommander.internal.Lists; import org.hamcrest.Matcher; +import java.util.List; + import static org.hamcrest.MatcherAssert.assertThat; public class GivenWhenThen { @@ -22,4 +25,13 @@ public static void then(T actual, Matcher matcher) { public static Consequence seeThat(Question actual, Matcher expected) { return new QuestionConsequence(actual, expected); } + + public static Consequence[] seeThat(Question actual, Matcher... expectedMatchers) { + List> consequences = Lists.newArrayList(); + for(Matcher matcher : expectedMatchers) { + consequences.add(new QuestionConsequence(actual, matcher)); + } + return consequences.toArray(new Consequence[]{}); + } + }