PrintingStepdocReporter.java
- package org.jbehave.core.reporters;
- import java.util.List;
- import org.jbehave.core.steps.Stepdoc;
- public abstract class PrintingStepdocReporter implements StepdocReporter {
- private static final String STEP_MATCHED_BY = "Step '%s' is matched by annotated patterns:";
- private static final String STEP_NOT_MATCHED = "Step '%s' is not matched by any pattern";
- private static final String STEPDOC = "'%s %s'";
- @Override
- public void stepdocsMatching(String stepAsString,
- List<Stepdoc> stepdocs, List<Object> stepsInstances) {
- if (stepdocs.size() > 0) {
- output(STEP_MATCHED_BY, stepAsString);
- outputStepdocs(stepdocs);
- } else {
- output(STEP_NOT_MATCHED, stepAsString);
- }
- outputStepsInstances(stepsInstances);
- }
- @Override
- public void stepdocs(List<Stepdoc> stepdocs, List<Object> stepsInstances) {
- outputStepdocs(stepdocs);
- outputStepsInstances(stepsInstances);
- }
- private void outputStepdocs(List<Stepdoc> stepdocs) {
- for (Stepdoc stepdoc : stepdocs) {
- output(STEPDOC, stepdoc.getStartingWord(), stepdoc.getPattern());
- output(stepdoc.getMethodSignature());
- }
- }
- private void outputStepsInstances(List<Object> stepsInstances) {
- if (stepsInstances.size() > 0) {
- output("from steps instances:");
- for (Object stepsInstance : stepsInstances) {
- output(stepsInstance.getClass().getName());
- }
- } else {
- output("as no steps instances are provided");
- }
- }
- protected abstract void output(String format, Object... args);
- }