MostUsefulConfiguration.java

  1. package org.jbehave.core.configuration;

  2. import com.thoughtworks.paranamer.NullParanamer;
  3. import com.thoughtworks.paranamer.Paranamer;

  4. import org.jbehave.core.embedder.StoryControls;
  5. import org.jbehave.core.failures.FailureStrategy;
  6. import org.jbehave.core.failures.PassingUponPendingStep;
  7. import org.jbehave.core.failures.PendingStepStrategy;
  8. import org.jbehave.core.failures.RethrowingFailure;
  9. import org.jbehave.core.i18n.LocalizedKeywords;
  10. import org.jbehave.core.io.LoadFromClasspath;
  11. import org.jbehave.core.io.StoryLoader;
  12. import org.jbehave.core.parsers.RegexPrefixCapturingPatternParser;
  13. import org.jbehave.core.parsers.RegexStoryParser;
  14. import org.jbehave.core.parsers.StepPatternParser;
  15. import org.jbehave.core.parsers.StoryParser;
  16. import org.jbehave.core.reporters.ConsoleOutput;
  17. import org.jbehave.core.reporters.FreemarkerViewGenerator;
  18. import org.jbehave.core.reporters.PrintStreamStepdocReporter;
  19. import org.jbehave.core.reporters.StepdocReporter;
  20. import org.jbehave.core.reporters.ViewGenerator;
  21. import org.jbehave.core.steps.MarkUnmatchedStepsAsPending;
  22. import org.jbehave.core.steps.ParameterControls;
  23. import org.jbehave.core.steps.SilentStepMonitor;
  24. import org.jbehave.core.steps.StepCollector;
  25. import org.jbehave.core.steps.StepFinder;
  26. import org.jbehave.core.steps.StepMonitor;

  27. /**
  28.  * The configuration that works for most situations that users are likely to encounter.
  29.  * The elements configured are:
  30.  * <ul>
  31.  * <li>{@link Keywords}: {@link LocalizedKeywords}</li>
  32.  * <li>{@link StoryParser}: {@link RegexStoryParser}</li>
  33.  * <li>{@link StoryLoader}: {@link LoadFromClasspath}</li>
  34.  * <li>{@link StoryControls}: {@link StoryControls}</li>
  35.  * <li>{@link FailureStrategy}: {@link RethrowingFailure}</li>
  36.  * <li>{@link PendingStepStrategy}: {@link PassingUponPendingStep}</li>
  37.  * <li>{@link DefaultStoryReporter}: {@link ConsoleOutput}</li>
  38.  * <li>{@link StepCollector}: {@link MarkUnmatchedStepsAsPending}</li>
  39.  * <li>{@link StepFinder}: {@link StepFinder}</li>
  40.  * <li>{@link StepPatternParser}: {@link RegexPrefixCapturingPatternParser}</li>
  41.  * <li>{@link StepdocReporter}: {@link PrintStreamStepdocReporter}</li>
  42.  * <li>{@link StepMonitor}: {@link SilentStepMonitor}
  43.  * <li>{@link Paranamer}: {@link NullParanamer}</li>
  44.  * <li>{@link ParameterControls}: {@link ParameterControls}</li>
  45.  * <li>{@link ViewGenerator}: {@link FreemarkerViewGenerator}</li>
  46.  * </ul>
  47.  */
  48. public class MostUsefulConfiguration extends Configuration {

  49.     public MostUsefulConfiguration() {
  50.         useKeywords(new LocalizedKeywords());
  51.         useStoryControls(new StoryControls());
  52.         useStoryLoader(new LoadFromClasspath());
  53.         useParameterControls(new ParameterControls());
  54.         useFailureStrategy(new RethrowingFailure());
  55.         usePendingStepStrategy(new PassingUponPendingStep());
  56.         useStepFinder(new StepFinder(stepConditionMatcher()));
  57.         useStepCollector(new MarkUnmatchedStepsAsPending(stepFinder(), keywords()));
  58.         useStepPatternParser(new RegexPrefixCapturingPatternParser());
  59.         useStepMonitor(new SilentStepMonitor());
  60.         useStepdocReporter(new PrintStreamStepdocReporter());
  61.         useParanamer(new NullParanamer());
  62.         useViewGenerator(new FreemarkerViewGenerator());
  63.     }

  64. }