Title: [1391] trunk/core/jbehave-core/src/java/org/jbehave/scenario: JBEHAVE-210: Passed embeddedStory flag to before/afterStory() methods.

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:

http://xircles.codehaus.org/manage_email

Reply via email to