- Revision
- 1613
- Author
- mauro
- Date
- 2010-04-14 18:15:17 -0500 (Wed, 14 Apr 2010)
Log Message
JBEHAVE-274: Added SpringJUnitRunner to trader example
Modified Paths
Added Paths
Diff
Added: trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/spring/SpringTraderRunner.java (0 => 1613)
--- trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/spring/SpringTraderRunner.java (rev 0) +++ trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/spring/SpringTraderRunner.java 2010-04-14 23:15:17 UTC (rev 1613) @@ -0,0 +1,87 @@ +package org.jbehave.examples.trader.spring; + +import static org.jbehave.scenario.reporters.ScenarioReporterBuilder.Format.CONSOLE; +import static org.jbehave.scenario.reporters.ScenarioReporterBuilder.Format.HTML; +import static org.jbehave.scenario.reporters.ScenarioReporterBuilder.Format.TXT; +import static org.jbehave.scenario.reporters.ScenarioReporterBuilder.Format.XML; + +import org.jbehave.examples.trader.BeforeAfterSteps; +import org.jbehave.examples.trader.TraderSteps; +import org.jbehave.examples.trader.spring.scenarios.WildcardSearch; +import org.jbehave.scenario.Configuration; +import org.jbehave.scenario.MostUsefulConfiguration; +import org.jbehave.scenario.RunnableScenario; +import org.jbehave.scenario.ScenarioRunner; +import org.jbehave.scenario.parser.ClasspathScenarioDefiner; +import org.jbehave.scenario.parser.PatternScenarioParser; +import org.jbehave.scenario.parser.PrefixCapturingPatternBuilder; +import org.jbehave.scenario.parser.ScenarioDefiner; +import org.jbehave.scenario.parser.ScenarioNameResolver; +import org.jbehave.scenario.parser.UnderscoredCamelCaseResolver; +import org.jbehave.scenario.reporters.FilePrintStreamFactory; +import org.jbehave.scenario.reporters.ScenarioReporter; +import org.jbehave.scenario.reporters.ScenarioReporterBuilder; +import org.jbehave.scenario.steps.CandidateSteps; +import org.jbehave.scenario.steps.PrintStreamStepMonitor; +import org.jbehave.scenario.steps.StepsConfiguration; +import org.jbehave.scenario.steps.StepsFactory; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +/** + * Run JBehave scenarios via Spring JUnit4 integration. + */ +...@runwith(SpringJUnit4ClassRunner.class) +...@contextconfiguration(locations = { "/org/jbehave/examples/trader/spring/steps.xml" }) +public class SpringTraderRunner { + + @Autowired + private BeforeAfterSteps beforeAfterSteps; + + @Autowired + private TraderSteps traderSteps; + + @Test + public void run() throws Throwable { + ScenarioRunner runner = new ScenarioRunner(); + CandidateSteps[] candidateSteps = candidateSteps(); + for (Class<? extends RunnableScenario> scenarioClass : scenarioClasses()) { + Configuration configuration = configure(scenarioClass); + runner.run(scenarioClass, configuration, candidateSteps); + } + } + + public CandidateSteps[] candidateSteps() { + StepsConfiguration configuration = new StepsConfiguration(); + configuration.usePatternBuilder(new PrefixCapturingPatternBuilder("%")); // use '%' instead of '$' to identify parameters + return new StepsFactory(configuration) + .createCandidateSteps(traderSteps, beforeAfterSteps); + } + + @SuppressWarnings("unchecked") + public Class<? extends RunnableScenario>[] scenarioClasses() { + return new Class[] { WildcardSearch.class }; + } + + public Configuration configure(final + Class<? extends RunnableScenario> scenarioClass) { + final ScenarioNameResolver resolver = new UnderscoredCamelCaseResolver( + ".scenario"); + return new MostUsefulConfiguration() { + public ScenarioDefiner forDefiningScenarios() { + return new ClasspathScenarioDefiner(resolver, + new PatternScenarioParser(keywords())); + } + + @Override + public ScenarioReporter forReportingScenarios() { + return new ScenarioReporterBuilder(new FilePrintStreamFactory( + scenarioClass, resolver)).with(CONSOLE).with(TXT).with( + HTML).with(XML).build(); + } + }; + } +}
Modified: trunk/core/jbehave-spring/pom.xml (1612 => 1613)
--- trunk/core/jbehave-spring/pom.xml 2010-04-14 23:07:22 UTC (rev 1612) +++ trunk/core/jbehave-spring/pom.xml 2010-04-14 23:15:17 UTC (rev 1613) @@ -20,6 +20,11 @@ <artifactId>spring-context</artifactId> <version>2.5.6</version> </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + <version>2.5.6</version> + </dependency> </dependencies> </project>
To unsubscribe from this list please visit:
