- Revision
- 1391
- Author
- mauro
- Date
- 2009-11-25 13:50:44 -0600 (Wed, 25 Nov 2009)
Log Message
JBEHAVE-210: Passed embeddedStory flag to before/afterStory() methods.
Modified Paths
- trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/ScenarioRunnerBehaviour.java
- trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/reporters/PassSilentlyDecoratorBehaviour.java
- trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/reporters/StepFailureScenarioReporterDecoratorBehaviour.java
- trunk/core/jbehave-core/src/java/org/jbehave/scenario/ScenarioRunner.java
- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/CollectingScenarioReporter.java
- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/HtmlPrintStreamScenarioReporter.java
- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PassSilentlyDecorator.java
- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PrintStreamScenarioReporter.java
- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/ScenarioReporter.java
- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/StepFailureScenarioReporterDecorator.java
Diff
Modified: trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/ScenarioRunnerBehaviour.java (1390 => 1391)
--- trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/ScenarioRunnerBehaviour.java 2009-11-25 18:13:09 UTC (rev 1390) +++ trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/ScenarioRunnerBehaviour.java 2009-11-25 19:50:44 UTC (rev 1391) @@ -45,6 +45,8 @@ "pendingStep")); StoryDefinition storyDefinition = new StoryDefinition(new Blurb("my blurb"), scenarioDefinition1, scenarioDefinition2, scenarioDefinition3); + boolean embeddedStory = false; + CandidateStep[] someCandidateSteps = new CandidateStep[0]; Step step = mock(Step.class); StepResult result = mock(StepResult.class); @@ -74,7 +76,7 @@ // Then InOrder inOrder = inOrder(reporter, errorStrategy); - inOrder.verify(reporter).beforeStory(storyDefinition); + inOrder.verify(reporter).beforeStory(storyDefinition, embeddedStory); inOrder.verify(reporter).beforeScenario("my title 1"); inOrder.verify(reporter).failed("failingStep", anException); inOrder.verify(reporter).notPerformed("successfulStep"); @@ -86,7 +88,7 @@ inOrder.verify(reporter).successful("successfulStep"); inOrder.verify(reporter).pending("pendingStep"); inOrder.verify(reporter).afterScenario(); - inOrder.verify(reporter).afterStory(); + inOrder.verify(reporter).afterStory(embeddedStory); inOrder.verify(errorStrategy).handleError(anException); } @@ -99,6 +101,7 @@ asList("anotherSuccessfulStep")); StoryDefinition storyDefinition1 = new StoryDefinition(new Blurb("story 1"), scenarioDefinition1); StoryDefinition storyDefinition2 = new StoryDefinition(new Blurb("story 2"), scenarioDefinition2); + boolean embeddedStory = false; CandidateStep[] someCandidateSteps = new CandidateStep[0]; Step step = mock(Step.class); @@ -127,12 +130,12 @@ // Then InOrder inOrder = inOrder(reporter); - inOrder.verify(reporter).beforeStory(storyDefinition2); + inOrder.verify(reporter).beforeStory(storyDefinition2, embeddedStory); inOrder.verify(reporter).givenScenarios(givenScenarios); inOrder.verify(reporter).successful("successfulStep"); inOrder.verify(reporter).successful("anotherSuccessfulStep"); - inOrder.verify(reporter).afterStory(); - verify(reporter, never()).beforeStory(storyDefinition1); + inOrder.verify(reporter).afterStory(embeddedStory); + verify(reporter, never()).beforeStory(storyDefinition1, embeddedStory); } @Test @@ -185,23 +188,24 @@ Steps mySteps = mock(Steps.class); stub(creator.createStepsFrom((ScenarioDefinition) anyObject(), eq(tableRow), eq(mySteps))).toReturn( new Step[] { firstStepExceptional, secondStepNotPerformed }); + StoryDefinition story = new StoryDefinition(new ScenarioDefinition("")); + boolean embeddedStory = false; // When ScenarioRunner runner = new ScenarioRunner(); - runner.run(new StoryDefinition(new ScenarioDefinition("")), - configurationWith(reporter, creator, errorStrategy), false, mySteps); + runner.run(story, configurationWith(reporter, creator, errorStrategy), false, mySteps); // Then verify(firstStepExceptional).perform(); verify(secondStepNotPerformed).doNotPerform(); InOrder inOrder = inOrder(reporter, errorStrategy); - inOrder.verify(reporter).beforeStory((StoryDefinition) anyObject()); + inOrder.verify(reporter).beforeStory((StoryDefinition) anyObject(), eq(embeddedStory)); inOrder.verify(reporter).beforeScenario((String) anyObject()); inOrder.verify(reporter).failed("When I fail", failure.getThrowable()); inOrder.verify(reporter).notPerformed("Then I should not be performed"); inOrder.verify(reporter).afterScenario(); - inOrder.verify(reporter).afterStory(); + inOrder.verify(reporter).afterStory(embeddedStory); inOrder.verify(errorStrategy).handleError(failure.getThrowable()); }
Modified: trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/reporters/PassSilentlyDecoratorBehaviour.java (1390 => 1391)
--- trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/reporters/PassSilentlyDecoratorBehaviour.java 2009-11-25 18:13:09 UTC (rev 1390) +++ trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/reporters/PassSilentlyDecoratorBehaviour.java 2009-11-25 19:50:44 UTC (rev 1391) @@ -8,8 +8,8 @@ import java.util.List; -import org.jbehave.scenario.definition.Blurb; import org.jbehave.scenario.definition.ExamplesTable; +import org.jbehave.scenario.definition.StoryDefinition; import org.junit.Test; import org.mockito.InOrder; @@ -22,9 +22,10 @@ List<String> givenScenarios = asList("path/to/scenario1", "path/to/scenario2"); ExamplesTable examplesTable = new ExamplesTable("|one|two|\n|1|2|\n"); IllegalArgumentException anException = new IllegalArgumentException(); - Blurb blurb = new Blurb("Some blurb"); + StoryDefinition story = new StoryDefinition(); + boolean embeddedStory = false; - decorator.beforeStory(blurb); + decorator.beforeStory(story, embeddedStory); decorator.beforeScenario("My scenario 1"); decorator.successful("Given step 1.1"); decorator.successful("When step 1.2"); @@ -50,7 +51,7 @@ decorator.successful("When step 4.2"); decorator.successful("Then step 4.3"); decorator.afterScenario(); - decorator.afterStory(); + decorator.afterStory(embeddedStory); InOrder inOrder = inOrder(delegate); @@ -64,7 +65,7 @@ verify(delegate, never()).successful("When step 4.2"); verify(delegate, never()).successful("Then step 4.3"); - inOrder.verify(delegate).beforeStory(blurb); + inOrder.verify(delegate).beforeStory(story, embeddedStory); inOrder.verify(delegate).beforeScenario("My scenario 2"); inOrder.verify(delegate).givenScenarios(givenScenarios); inOrder.verify(delegate).successful("Given step 2.1"); @@ -79,7 +80,7 @@ inOrder.verify(delegate).failed("Then step 3.3", anException); inOrder.verify(delegate).afterScenario(); - inOrder.verify(delegate).afterStory(); + inOrder.verify(delegate).afterStory(embeddedStory); } }
Modified: trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/reporters/StepFailureScenarioReporterDecoratorBehaviour.java (1390 => 1391)
--- trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/reporters/StepFailureScenarioReporterDecoratorBehaviour.java 2009-11-25 18:13:09 UTC (rev 1390) +++ trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/reporters/StepFailureScenarioReporterDecoratorBehaviour.java 2009-11-25 19:50:44 UTC (rev 1391) @@ -12,7 +12,7 @@ import org.hamcrest.Description; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeMatcher; -import org.jbehave.scenario.definition.Blurb; +import org.jbehave.scenario.definition.StoryDefinition; import org.junit.Before; import org.junit.Test; import org.mockito.InOrder; @@ -31,27 +31,28 @@ @Test public void shouldJustDelegateAllReportingMethodsOtherThanFailure() { // Given - Blurb blurb = new Blurb("Some blurb"); - - // When - decorator.beforeStory(blurb); + StoryDefinition story = new StoryDefinition(); + boolean embeddedStory = false; + + // When + decorator.beforeStory(story, embeddedStory); decorator.beforeScenario("My scenario 1"); decorator.successful("Given step 1.1"); decorator.pending("When step 1.2"); decorator.notPerformed("Then step 1.3"); decorator.afterScenario(); - decorator.afterStory(); + decorator.afterStory(embeddedStory); // Then InOrder inOrder = inOrder(delegate); - inOrder.verify(delegate).beforeStory(blurb); + inOrder.verify(delegate).beforeStory(story, embeddedStory); inOrder.verify(delegate).beforeScenario("My scenario 1"); inOrder.verify(delegate).successful("Given step 1.1"); inOrder.verify(delegate).pending("When step 1.2"); inOrder.verify(delegate).notPerformed("Then step 1.3"); inOrder.verify(delegate).afterScenario(); - inOrder.verify(delegate).afterStory(); + inOrder.verify(delegate).afterStory(embeddedStory); } @Test @@ -76,10 +77,11 @@ Throwable t = new IllegalArgumentException("World Peace for everyone"); String stepAsString = "When I have a bad idea"; decorator.failed(stepAsString, t); + boolean embeddedStory = false; // When try { - decorator.afterStory(); + decorator.afterStory(embeddedStory); fail("Should have rethrown exception"); } catch (Throwable rethrown) { // Then
Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/ScenarioRunner.java (1390 => 1391)
--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/ScenarioRunner.java 2009-11-25 18:13:09 UTC (rev 1390) +++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/ScenarioRunner.java 2009-11-25 19:50:44 UTC (rev 1391) @@ -55,9 +55,7 @@ currentStrategy = ErrorStrategy.SILENT; throwable = null; - if ( !embeddedStory ){ - reporter.beforeStory(story); - } + reporter.beforeStory(story, embeddedStory); for (ScenarioDefinition scenario : story.getScenarios()) { reporter.beforeScenario(scenario.getTitle()); runGivenScenarios(configuration, scenario, candidateSteps); // first run any given scenarios, if any @@ -68,9 +66,7 @@ } reporter.afterScenario(); } - if ( !embeddedStory ){ - reporter.afterStory(); - } + reporter.afterStory(embeddedStory); currentStrategy.handleError(throwable); }
Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/CollectingScenarioReporter.java (1390 => 1391)
--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/CollectingScenarioReporter.java 2009-11-25 18:13:09 UTC (rev 1390) +++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/CollectingScenarioReporter.java 2009-11-25 19:50:44 UTC (rev 1391) @@ -45,6 +45,12 @@ } } + public void afterStory(boolean embeddedStory) { + for (ScenarioReporter reporter : reporters) { + reporter.afterStory(embeddedStory); + } + } + public void afterStory() { for (ScenarioReporter reporter : reporters) { reporter.afterStory(); @@ -57,9 +63,9 @@ } } - public void beforeStory(StoryDefinition story) { + public void beforeStory(StoryDefinition story, boolean embeddedStory) { for (ScenarioReporter reporter : reporters) { - reporter.beforeStory(story); + reporter.beforeStory(story, embeddedStory); } }
Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/HtmlPrintStreamScenarioReporter.java (1390 => 1391)
--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/HtmlPrintStreamScenarioReporter.java 2009-11-25 18:13:09 UTC (rev 1390) +++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/HtmlPrintStreamScenarioReporter.java 2009-11-25 19:50:44 UTC (rev 1391) @@ -27,6 +27,7 @@ public HtmlPrintStreamScenarioReporter(PrintStreamFactory printStreamFactory) { this.printStreamFactory = printStreamFactory; + usePrintStream(printStreamFactory.createPrintStream("Story")); } public void successful(String step) { @@ -50,7 +51,7 @@ output.print(format("failed.html", defaultPattern, escapeHtml(step), keywords.failed())); } - public void beforeStory(StoryDefinition story) { + public void beforeStory(StoryDefinition story, boolean embeddedStory) { usePrintStream(printStreamFactory.createPrintStream(story.getName())); beforeStory(story.getBlurb()); } @@ -60,7 +61,7 @@ output.print(format("beforeStory.html", defaultPattern, blurb.asString())); } - public void afterStory() { + public void afterStory(boolean embeddedStory) { output.print(format("afterStory.html", "</div>\n")); }
Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PassSilentlyDecorator.java (1390 => 1391)
--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PassSilentlyDecorator.java 2009-11-25 18:13:09 UTC (rev 1390) +++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PassSilentlyDecorator.java 2009-11-25 19:50:44 UTC (rev 1391) @@ -19,19 +19,25 @@ private State scenarioState = State.SILENT; private State beforeStoryState = State.SILENT; private State afterStoryState = State.SILENT; + private boolean embeddedStory; public PassSilentlyDecorator(ScenarioReporter delegate) { this.delegate = delegate; } + public void afterStory(boolean embeddedStory) { + afterStoryState.report(); + } + public void afterStory() { afterStoryState.report(); } - public void beforeStory(final StoryDefinition story) { + public void beforeStory(final StoryDefinition story, final boolean embeddedStory) { + this.embeddedStory = embeddedStory; beforeStoryState = new State() { public void report() { - delegate.beforeStory(story); + delegate.beforeStory(story, embeddedStory); beforeStoryState = State.SILENT; } }; @@ -81,7 +87,7 @@ } afterStoryState = new State() { public void report() { - delegate.afterStory(); + delegate.afterStory(embeddedStory); afterStoryState = State.SILENT; } };
Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PrintStreamScenarioReporter.java (1390 => 1391)
--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PrintStreamScenarioReporter.java 2009-11-25 18:13:09 UTC (rev 1390) +++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PrintStreamScenarioReporter.java 2009-11-25 19:50:44 UTC (rev 1391) @@ -114,11 +114,15 @@ output.print(format("beforeScenario", "{0} {1}\n", keywords.scenario(), title)); } + public void afterStory(boolean embeddedStory) { + output.print(format("afterStory", "\n")); + } + public void afterStory() { output.print(format("afterStory", "\n")); } - public void beforeStory(StoryDefinition story) { + public void beforeStory(StoryDefinition story, boolean embeddedStory) { beforeStory(story.getBlurb()); }
Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/ScenarioReporter.java (1390 => 1391)
--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/ScenarioReporter.java 2009-11-25 18:13:09 UTC (rev 1390) +++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/ScenarioReporter.java 2009-11-25 19:50:44 UTC (rev 1391) @@ -15,15 +15,20 @@ */ public interface ScenarioReporter { - void beforeStory(StoryDefinition story); + void beforeStory(StoryDefinition story, boolean embeddedStory); /** - * @deprecated Use beforeStory(StoryDefinition) + * @deprecated Use beforeStory(StoryDefinition, boolean) */ void beforeStory(Blurb blurb); + void afterStory(boolean embeddedStory); + + /** + * @deprecated Use afterStory(boolean) + */ void afterStory(); - + void beforeScenario(String title); void afterScenario();
Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/StepFailureScenarioReporterDecorator.java (1390 => 1391)
--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/StepFailureScenarioReporterDecorator.java 2009-11-25 18:13:09 UTC (rev 1390) +++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/StepFailureScenarioReporterDecorator.java 2009-11-25 19:50:44 UTC (rev 1391) @@ -31,13 +31,20 @@ delegate.afterScenario(); } - public void afterStory() { - delegate.afterStory(); + public void afterStory(boolean embeddedStory) { + delegate.afterStory(embeddedStory); if (failure != null) { throw failure; } } + public void afterStory() { + delegate.afterStory(); + if (failure != null) { + throw failure; + } + } + public void beforeScenario(String title) { delegate.beforeScenario(title); } @@ -47,9 +54,9 @@ delegate.beforeStory(blurb); } - public void beforeStory(StoryDefinition story) { + public void beforeStory(StoryDefinition story, boolean embeddedStory) { failure = null; - delegate.beforeStory(story); + delegate.beforeStory(story, embeddedStory); } public void failed(String step, Throwable cause) {
To unsubscribe from this list please visit:
