- Revision
- 880
- Author
- sirenian
- Date
- 2008-07-27 16:53:10 -0500 (Sun, 27 Jul 2008)
Log Message
Not passing steps as strings around any more, first step in refactoring for multiple scenarios in a file
Modified Paths
- trunk/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/StatusAlertCanBeActivated.java
- trunk/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/StatusAlertIsNeverActivated.java
- trunk/jbehave-core/src/behaviour/org/jbehave/scenario/ScenarioBehaviour.java
- trunk/jbehave-core/src/behaviour/org/jbehave/scenario/parser/ScenarioFileLoaderBehaviour.java
- trunk/jbehave-core/src/java/org/jbehave/OurTechnique.java
- trunk/jbehave-core/src/java/org/jbehave/Technique.java
- trunk/jbehave-core/src/java/org/jbehave/scenario/Scenario.java
- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioDefiner.java
- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioFileLoader.java
Added Paths
Diff
Modified: trunk/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/StatusAlertCanBeActivated.java (879 => 880)
--- trunk/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/StatusAlertCanBeActivated.java 2008-07-25 09:26:30 UTC (rev 879) +++ trunk/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/StatusAlertCanBeActivated.java 2008-07-27 21:53:10 UTC (rev 880) @@ -2,6 +2,7 @@ import org.jbehave.OurTechnique; import org.jbehave.scenario.Scenario; +import org.jbehave.scenario.parser.PatternStepParser; import org.jbehave.scenario.parser.ScenarioFileLoader; import org.jbehave.scenario.parser.UnderscoredCamelCaseResolver; @@ -15,7 +16,7 @@ public StatusAlertCanBeActivated(final ClassLoader classLoader) { super(new OurTechnique() { public ScenarioFileLoader forDefiningScenarios() { - return new ScenarioFileLoader(new UnderscoredCamelCaseResolver(".scenario"), classLoader); + return new ScenarioFileLoader(new UnderscoredCamelCaseResolver(".scenario"), classLoader, new PatternStepParser()); } }, new StockSteps(10.0)); }
Modified: trunk/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/StatusAlertIsNeverActivated.java (879 => 880)
--- trunk/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/StatusAlertIsNeverActivated.java 2008-07-25 09:26:30 UTC (rev 879) +++ trunk/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/StatusAlertIsNeverActivated.java 2008-07-27 21:53:10 UTC (rev 880) @@ -2,6 +2,7 @@ import org.jbehave.OurTechnique; import org.jbehave.scenario.Scenario; +import org.jbehave.scenario.parser.PatternStepParser; import org.jbehave.scenario.parser.ScenarioFileLoader; import org.jbehave.scenario.parser.UnderscoredCamelCaseResolver; @@ -16,7 +17,7 @@ super(new OurTechnique() { @Override public ScenarioFileLoader forDefiningScenarios() { - return new ScenarioFileLoader(new UnderscoredCamelCaseResolver(".scenario"), classLoader); + return new ScenarioFileLoader(new UnderscoredCamelCaseResolver(".scenario"), classLoader, new PatternStepParser()); } }, new StockSteps(100.0)); }
Modified: trunk/jbehave-core/src/behaviour/org/jbehave/scenario/ScenarioBehaviour.java (879 => 880)
--- trunk/jbehave-core/src/behaviour/org/jbehave/scenario/ScenarioBehaviour.java 2008-07-25 09:26:30 UTC (rev 879) +++ trunk/jbehave-core/src/behaviour/org/jbehave/scenario/ScenarioBehaviour.java 2008-07-27 21:53:10 UTC (rev 880) @@ -16,6 +16,7 @@ import org.jbehave.scenario.annotations.When; import org.jbehave.scenario.parser.PatternStepParser; import org.jbehave.scenario.parser.ScenarioDefiner; +import org.jbehave.scenario.parser.ScenarioDefinition; import org.jbehave.scenario.parser.ScenarioFileLoader; import org.jbehave.scenario.parser.StepParser; import org.jbehave.scenario.parser.scenarios.MyPendingScenario; @@ -41,7 +42,7 @@ PrintStreamScenarioReporter reporter = new PrintStreamScenarioReporter(new PrintStream(output)); MySteps steps = new MySteps(); - stub(fileLoader.loadStepsFor(MyScenario.class)).toReturn("my_scenario"); + stub(fileLoader.loadStepsFor(MyScenario.class)).toReturn(new ScenarioDefinition(stepParser, "my_scenario")); stub(stepParser.findSteps("my_scenario")).toReturn(Arrays.asList(new String[] { "Given I have 2 cows", "When I leave them over the winter", @@ -65,7 +66,7 @@ ScenarioReporter reporter = new BufferScenarioReporter(buffer); MySteps steps = new MySteps(); - stub(fileLoader.loadStepsFor(MyScenario.class)).toReturn("my_scenario"); + stub(fileLoader.loadStepsFor(MyScenario.class)).toReturn(new ScenarioDefinition(stepParser, "my_scenario")); stub(stepParser.findSteps("my_scenario")).toReturn(Arrays.asList(new String[] { "Given I have 2 cows", "When I leave them over the winter", @@ -94,7 +95,7 @@ ScenarioReporter reporter = new PrintStreamScenarioReporter(new PrintStream(output)); MySteps steps = new MySteps(); - stub(scenarioDefiner.loadStepsFor(MyScenario.class)).toReturn("my_scenario"); + stub(scenarioDefiner.loadStepsFor(MyScenario.class)).toReturn(new ScenarioDefinition(stepParser, "my_scenario")); stub(stepParser.findSteps("my_scenario")).toReturn(Arrays.asList(new String[] { "Given I have 2 cows", "When I put them in a field", @@ -123,8 +124,6 @@ public ScenarioDefiner forDefiningScenarios() { return scenarioDefiner; } - public StepParser forParsingSteps() { return stepParser; } - public ScenarioReporter forReportingScenarios() { return scenarioReporter; } }, steps);
Modified: trunk/jbehave-core/src/behaviour/org/jbehave/scenario/parser/ScenarioFileLoaderBehaviour.java (879 => 880)
--- trunk/jbehave-core/src/behaviour/org/jbehave/scenario/parser/ScenarioFileLoaderBehaviour.java 2008-07-25 09:26:30 UTC (rev 879) +++ trunk/jbehave-core/src/behaviour/org/jbehave/scenario/parser/ScenarioFileLoaderBehaviour.java 2008-07-27 21:53:10 UTC (rev 880) @@ -1,10 +1,11 @@ package org.jbehave.scenario.parser; -import static org.hamcrest.CoreMatchers.equalTo; -import static org.jbehave.Ensure.ensureThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; import java.io.IOException; import java.io.InputStream; +import java.util.List; import org.jbehave.scenario.Scenario; import org.jbehave.scenario.parser.scenarios.MyPendingScenario; @@ -14,14 +15,19 @@ @Test public void canLoadScenario() { - ScenarioFileLoader loader = new ScenarioFileLoader(); - ensureThat(loader.loadStepsFor(MyPendingScenario.class), equalTo("Given my scenario")); + StepParser parser = mock(StepParser.class); + ScenarioFileLoader loader = new ScenarioFileLoader(parser); + ScenarioDefinition definition = loader.loadStepsFor(MyPendingScenario.class); + definition.getSteps(); + verify(parser).findSteps("Given my scenario"); } @Test public void canLoadScenarioWithCustomFilenameResolver() { - ScenarioFileLoader loader = new ScenarioFileLoader(new CasePreservingResolver(".scenario")); - ensureThat(loader.loadStepsFor(MyPendingScenario.class), equalTo("Given my scenario")); + StepParser parser = mock(StepParser.class); + ScenarioFileLoader loader = new ScenarioFileLoader(new CasePreservingResolver(".scenario"), parser); + loader.loadStepsFor(MyPendingScenario.class).getSteps(); + verify(parser).findSteps("Given my scenario"); } @Test(expected = ScenarioNotFoundException.class) @@ -57,7 +63,5 @@ }; } - } - }
Modified: trunk/jbehave-core/src/java/org/jbehave/OurTechnique.java (879 => 880)
--- trunk/jbehave-core/src/java/org/jbehave/OurTechnique.java 2008-07-25 09:26:30 UTC (rev 879) +++ trunk/jbehave-core/src/java/org/jbehave/OurTechnique.java 2008-07-27 21:53:10 UTC (rev 880) @@ -7,15 +7,11 @@ public class OurTechnique implements Technique { - public PatternStepParser forParsingSteps() { - return new PatternStepParser(); - } - public PrintStreamScenarioReporter forReportingScenarios() { return new PrintStreamScenarioReporter(); } public ScenarioFileLoader forDefiningScenarios() { - return new ScenarioFileLoader(new UnderscoredCamelCaseResolver()); + return new ScenarioFileLoader(new UnderscoredCamelCaseResolver(), new PatternStepParser()); } }
Modified: trunk/jbehave-core/src/java/org/jbehave/Technique.java (879 => 880)
--- trunk/jbehave-core/src/java/org/jbehave/Technique.java 2008-07-25 09:26:30 UTC (rev 879) +++ trunk/jbehave-core/src/java/org/jbehave/Technique.java 2008-07-27 21:53:10 UTC (rev 880) @@ -2,7 +2,6 @@ import org.jbehave.scenario.ScenarioReporter; import org.jbehave.scenario.parser.ScenarioDefiner; -import org.jbehave.scenario.parser.StepParser; /** * Provides techniques for defining, parsing and reporting scenarios. @@ -12,8 +11,6 @@ public interface Technique { ScenarioDefiner forDefiningScenarios(); - - StepParser forParsingSteps(); ScenarioReporter forReportingScenarios();
Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/Scenario.java (879 => 880)
--- trunk/jbehave-core/src/java/org/jbehave/scenario/Scenario.java 2008-07-25 09:26:30 UTC (rev 879) +++ trunk/jbehave-core/src/java/org/jbehave/scenario/Scenario.java 2008-07-27 21:53:10 UTC (rev 880) @@ -5,7 +5,7 @@ import org.jbehave.OurTechnique; import org.jbehave.Technique; import org.jbehave.scenario.parser.ScenarioDefiner; -import org.jbehave.scenario.parser.StepParser; +import org.jbehave.scenario.parser.ScenarioDefinition; import org.jbehave.scenario.steps.CandidateStep; import org.jbehave.scenario.steps.PendingStep; import org.jbehave.scenario.steps.Step; @@ -25,7 +25,6 @@ private final Steps[] candidateSteps; private final ScenarioDefiner scenarioDefiner; - private final StepParser stepParser; private final ScenarioRunner scenarioRunner; public Scenario(Steps... candidateSteps) { @@ -35,14 +34,13 @@ public Scenario(Technique technique, Steps... candidateSteps) { this.candidateSteps = candidateSteps; this.scenarioDefiner = technique.forDefiningScenarios(); - this.stepParser = technique.forParsingSteps(); this.scenarioRunner = new ScenarioRunner(technique.forReportingScenarios()); } @Test public void runUsingSteps() throws Throwable { - List<String> stringSteps = stepParser.findSteps(scenarioDefiner.loadStepsFor(this.getClass())); - Step[] steps = createRealStepsFromCandidates(stringSteps); + ScenarioDefinition definition = scenarioDefiner.loadStepsFor(this.getClass()); + Step[] steps = createRealStepsFromCandidates(definition.getSteps()); scenarioRunner.run(steps); }
Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioDefiner.java (879 => 880)
--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioDefiner.java 2008-07-25 09:26:30 UTC (rev 879) +++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioDefiner.java 2008-07-27 21:53:10 UTC (rev 880) @@ -4,6 +4,6 @@ public interface ScenarioDefiner { - String loadStepsFor(Class<? extends Scenario> clazz); + ScenarioDefinition loadStepsFor(Class<? extends Scenario> clazz); } \ No newline at end of file
Added: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioDefinition.java (0 => 880)
--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioDefinition.java (rev 0) +++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioDefinition.java 2008-07-27 21:53:10 UTC (rev 880) @@ -0,0 +1,19 @@ +package org.jbehave.scenario.parser; + +import java.util.List; + +public class ScenarioDefinition { + + private final StepParser stepParser; + private final String scenarioAsString; + + public ScenarioDefinition(StepParser stepParser, String scenarioAsString) { + this.stepParser = stepParser; + this.scenarioAsString = scenarioAsString; + } + + public List<String> getSteps() { + return stepParser.findSteps(scenarioAsString); + } + +}
Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioFileLoader.java (879 => 880)
--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioFileLoader.java 2008-07-25 09:26:30 UTC (rev 879) +++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioFileLoader.java 2008-07-27 21:53:10 UTC (rev 880) @@ -10,25 +10,31 @@ private final ScenarioFileNameResolver resolver; private final ClassLoader classLoader; + private final StepParser stepParser; public ScenarioFileLoader() { - this(new UnderscoredCamelCaseResolver(), Thread.currentThread().getContextClassLoader()); + this(new UnderscoredCamelCaseResolver(), Thread.currentThread().getContextClassLoader(), new PatternStepParser()); } - public ScenarioFileLoader(ScenarioFileNameResolver converter) { - this(converter, Thread.currentThread().getContextClassLoader()); + public ScenarioFileLoader(StepParser stepParser) { + this(new UnderscoredCamelCaseResolver(), Thread.currentThread().getContextClassLoader(), stepParser); + } + + public ScenarioFileLoader(ScenarioFileNameResolver converter, StepParser parser) { + this(converter, Thread.currentThread().getContextClassLoader(), parser); } public ScenarioFileLoader(ClassLoader classLoader) { - this(new UnderscoredCamelCaseResolver(), classLoader); + this(new UnderscoredCamelCaseResolver(), classLoader, new PatternStepParser()); } - public ScenarioFileLoader(ScenarioFileNameResolver resolver, ClassLoader classLoader) { + public ScenarioFileLoader(ScenarioFileNameResolver resolver, ClassLoader classLoader, StepParser stepParser) { this.resolver = resolver; this.classLoader = classLoader; + this.stepParser = stepParser; } - private InputStream loadStepsAsStreamFor(Class<? extends Scenario> scenarioClass) { + private InputStream loadStepsAsStreamFor(Class<? extends Scenario> scenarioClass) { String scenarioFileName = resolver.resolve(scenarioClass); InputStream stream = classLoader.getResourceAsStream(scenarioFileName); if ( stream == null ){ @@ -37,8 +43,8 @@ return stream; } - public String loadStepsFor(Class<? extends Scenario> scenarioClass) { - return asString(loadStepsAsStreamFor(scenarioClass)); + public ScenarioDefinition loadStepsFor(Class<? extends Scenario> scenarioClass) { + return new ScenarioDefinition(stepParser, asString(loadStepsAsStreamFor(scenarioClass))); } private String asString(InputStream stream) {
To unsubscribe from this list please visit: