package org.jbehave.example.spring.security; import java.util.List; import org.jbehave.core.configuration.Configuration; import org.jbehave.core.configuration.MostUsefulConfiguration; import org.jbehave.core.io.CodeLocations; import org.jbehave.core.io.StoryFinder; import org.jbehave.core.junit.JUnitStories; import org.jbehave.core.reporters.StoryReporterBuilder; import org.jbehave.core.steps.InjectableStepsFactory; import org.jbehave.core.steps.spring.SpringApplicationContextFactory; import org.jbehave.core.steps.spring.SpringStepsFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.ConfigurableApplicationContext; import static org.jbehave.core.reporters.Format.CONSOLE; import static org.jbehave.core.reporters.Format.HTML; import static org.jbehave.core.reporters.Format.TXT; import static org.jbehave.core.reporters.Format.XML; public class SpringSecurityStories extends JUnitStories { private ConfigurableApplicationContext context; public SpringSecurityStories() { configuredEmbedder().embedderControls().doGenerateViewAfterStories(true).doIgnoreFailureInStories(false) .doIgnoreFailureInView(true).doVerboseFailures(true); } @Override public Configuration configuration() { Configuration configuration = new MostUsefulConfiguration(); configuration.useStoryReporterBuilder(new StoryReporterBuilder() .withCodeLocation(CodeLocations.codeLocationFromClass(getClass())).withDefaultFormats() .withFormats(CONSOLE, TXT, HTML, XML)); return configuration; } public InjectableStepsFactory stepsFactory() { return new SpringStepsFactory(configuration(), context()); } private ApplicationContext context() { if (context == null) { context = new SpringApplicationContextFactory("steps.xml").createApplicationContext(); } return context; } @Override protected List<String> storyPaths() { return new StoryFinder().findPaths(CodeLocations.codeLocationFromClass(getClass()), "**/*.story", ""); } }