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.reporters.StoryReporterBuilder;
import org.jbehave.examples.core.CoreStories;
import static java.util.Arrays.asList;
import static org.jbehave.core.io.CodeLocations.codeLocationFromURL;
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;
/**
* <p>
* Example of how multiple remote stories can be run via JUnit.
* </p>
* <p>
* Stories are specified as remote URLs and correspondingly the {@link LoadFromURL}
* story loader is configured and the story paths are looked up as remote URLs.
* It extends CoreStories simply for convenience, in order to avoid
* duplicating common configuration.
* </p>
*/
public class RemoteCoreStories extends CoreStories {
@Override
public Configuration configuration() {
return super.configuration()
.useStoryLoader(new LoadFromURL())
.useStoryReporterBuilder(
new StoryReporterBuilder()
.withCodeLocation(codeLocationFromURL("http://jbehave.org/reference/examples/stories/"))
.withDefaultFormats()
.withFormats(CONSOLE, TXT, HTML, XML));
}
@Override
protected List<String> storyPaths() {
// Specify story paths as remote URLs
String codeLocation = codeLocationFromURL("http://jbehave.org/reference/examples/stories/")
.toExternalForm();
return asList(codeLocation + "and_step.story");
}
}