- Revision
- 1297
- Author
- mauro
- Date
- 2009-10-07 17:43:07 -0500 (Wed, 07 Oct 2009)
Log Message
Fixed NPE in PassSilentlyDecorator when using table examples.
Modified Paths
- trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/TraderScenario.java
- trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/reporters/PassSilentlyDecoratorBehaviour.java
- trunk/core/jbehave-core/src/java/org/jbehave/scenario/ScenarioRunner.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
Diff
Modified: trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/TraderScenario.java (1296 => 1297)
--- trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/TraderScenario.java 2009-10-06 11:34:20 UTC (rev 1296) +++ trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/TraderScenario.java 2009-10-07 22:43:07 UTC (rev 1297) @@ -2,8 +2,6 @@ import org.jbehave.scenario.JUnitScenario; import org.jbehave.scenario.PropertyBasedConfiguration; -import org.jbehave.scenario.definition.KeyWords; -import org.jbehave.scenario.i18n.I18nKeyWords; import org.jbehave.scenario.parser.ClasspathScenarioDefiner; import org.jbehave.scenario.parser.PatternScenarioParser; import org.jbehave.scenario.parser.ScenarioDefiner; @@ -28,11 +26,6 @@ public ScenarioReporter forReportingScenarios() { return new PrintStreamScenarioReporter(); } - - @Override - public KeyWords keywords() { - return new I18nKeyWords(); - } }, new TraderSteps(classLoader)); }
Modified: trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/reporters/PassSilentlyDecoratorBehaviour.java (1296 => 1297)
--- trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/reporters/PassSilentlyDecoratorBehaviour.java 2009-10-06 11:34:20 UTC (rev 1296) +++ trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/reporters/PassSilentlyDecoratorBehaviour.java 2009-10-07 22:43:07 UTC (rev 1297) @@ -1,11 +1,15 @@ package org.jbehave.scenario.reporters; +import static java.util.Arrays.asList; import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; +import java.util.List; + import org.jbehave.scenario.definition.Blurb; +import org.jbehave.scenario.definition.ExamplesTable; import org.junit.Test; import org.mockito.InOrder; @@ -15,6 +19,8 @@ public void shouldSwallowOutputFromPassingScenarios() { ScenarioReporter delegate = mock(ScenarioReporter.class); PassSilentlyDecorator decorator = new PassSilentlyDecorator(delegate); + 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"); @@ -26,12 +32,14 @@ decorator.afterScenario(); decorator.beforeScenario("My scenario 2"); + decorator.givenScenarios(givenScenarios); decorator.successful("Given step 2.1"); decorator.pending("When step 2.2"); decorator.notPerformed("Then step 2.3"); decorator.afterScenario(); decorator.beforeScenario("My scenario 3"); + decorator.examplesTable(examplesTable); decorator.successful("Given step 3.1"); decorator.successful("When step 3.2"); decorator.failed("Then step 3.3", anException); @@ -58,15 +66,18 @@ inOrder.verify(delegate).beforeStory(blurb); inOrder.verify(delegate).beforeScenario("My scenario 2"); + inOrder.verify(delegate).givenScenarios(givenScenarios); inOrder.verify(delegate).successful("Given step 2.1"); inOrder.verify(delegate).pending("When step 2.2"); inOrder.verify(delegate).notPerformed("Then step 2.3"); inOrder.verify(delegate).afterScenario(); inOrder.verify(delegate).beforeScenario("My scenario 3"); + inOrder.verify(delegate).examplesTable(examplesTable); inOrder.verify(delegate).successful("Given step 3.1"); inOrder.verify(delegate).successful("When step 3.2"); inOrder.verify(delegate).failed("Then step 3.3", anException); + inOrder.verify(delegate).afterScenario(); inOrder.verify(delegate).afterStory();
Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/ScenarioRunner.java (1296 => 1297)
--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/ScenarioRunner.java 2009-10-06 11:34:20 UTC (rev 1296) +++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/ScenarioRunner.java 2009-10-07 22:43:07 UTC (rev 1297) @@ -50,12 +50,14 @@ reporter.beforeStory(story.getBlurb()); for (ScenarioDefinition scenario : story.getScenarios()) { + reporter.beforeScenario(scenario.getTitle()); runGivenScenarios(configuration, scenario, candidateSteps); // first run any given scenarios, if any if ( isExamplesTableScenario(scenario) ){ // run examples table scenario runExamplesTableScenario(configuration, scenario, scenario.getTable(), candidateSteps); } else { // run plain old scenario runScenario(configuration, scenario, new HashMap<String, String>(), candidateSteps); } + reporter.afterScenario(); } reporter.afterStory(); currentStrategy.handleError(throwable); @@ -91,12 +93,10 @@ private void runScenario(Configuration configuration, ScenarioDefinition scenario, Map<String, String> tableRow, CandidateSteps... candidateSteps) { Step[] steps = configuration.forCreatingSteps().createStepsFrom(scenario, tableRow, candidateSteps); - reporter.beforeScenario(scenario.getTitle()); state = new FineSoFar(); for (Step step : steps) { state.run(step); } - reporter.afterScenario(); }; private class SomethingHappened implements State {
Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PassSilentlyDecorator.java (1296 => 1297)
--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PassSilentlyDecorator.java 2009-10-06 11:34:20 UTC (rev 1296) +++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PassSilentlyDecorator.java 2009-10-07 22:43:07 UTC (rev 1297) @@ -14,7 +14,7 @@ public class PassSilentlyDecorator implements ScenarioReporter { private final ScenarioReporter delegate; - private List<Todo> currentScenario; + private List<Todo> currentScenario = new ArrayList<Todo>(); private State scenarioState = State.SILENT; private State beforeStoryState = State.SILENT; private State afterStoryState = State.SILENT;
Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PrintStreamScenarioReporter.java (1296 => 1297)
--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PrintStreamScenarioReporter.java 2009-10-06 11:34:20 UTC (rev 1296) +++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PrintStreamScenarioReporter.java 2009-10-07 22:43:07 UTC (rev 1297) @@ -133,7 +133,7 @@ } public void examplesTableRow(Map<String, String> tableRow) { - output.println(format("examplesTableRow", "{0} {1}\n", keywords + output.println(format("examplesTableRow", "\n{0} {1}\n", keywords .examplesTableRow(), tableRow)); }
To unsubscribe from this list please visit:
