package org.jbehave.examples.core.urls; import java.util.List; import org.jbehave.core.configuration.Configuration; import org.jbehave.core.io.LoadFromURL; import org.jbehave.core.io.StoryFinder; import org.jbehave.core.reporters.FilePrintStreamFactory.ResolveToSimpleName; import org.jbehave.core.reporters.StoryReporterBuilder; import org.jbehave.examples.core.CoreStories; import static java.util.Arrays.asList; import static org.jbehave.core.io.CodeLocations.codeLocationFromPath; /** * <p> * Example of how multiple stories can be run via JUnit. * </p> * <p> * Stories are specified as URLs and correspondingly the {@link LoadFromURL} * story loader is configured and the story paths are looked up as "file:" URLs. * It extends CoreStories simply for convenience, in order to avoid * duplicating common configuration. * </p> */ public class CoreStoriesUsingURLs extends CoreStories { public CoreStoriesUsingURLs() { } @Override public Configuration configuration() { Configuration configuration = super.configuration(); StoryReporterBuilder builder = configuration.storyReporterBuilder(); builder.withPathResolver(new ResolveToSimpleName()); return configuration.useStoryLoader(new LoadFromURL()); } @Override protected List<String> storyPaths() { // Specify story paths as URLs String codeLocation = codeLocationFromPath("../core/src/main/java").getFile(); return new StoryFinder().findPaths(codeLocation, asList("**/trader_is_alerted_of_status.story", "**/traders_can_be_subset.story"), asList(""), "file:" + codeLocation); } }