1 | |
package org.jbehave.core.reporters; |
2 | |
|
3 | |
import java.io.PrintStream; |
4 | |
import java.util.List; |
5 | |
import org.jbehave.core.steps.Stepdoc; |
6 | |
|
7 | |
import static java.text.MessageFormat.format; |
8 | |
|
9 | |
public class PrintStreamStepdocReporter implements StepdocReporter { |
10 | |
|
11 | |
private static final String STEP_MATCHED_BY = "Step ''{0}'' is matched by annotated patterns:"; |
12 | |
private static final String STEP_NOT_MATCHED = "Step ''{0}'' is not matched by any pattern"; |
13 | |
private static final String STEPDOC = "''{0} {1}''"; |
14 | |
|
15 | |
private PrintStream output; |
16 | |
|
17 | |
public PrintStreamStepdocReporter() { |
18 | 602 | this(System.out); |
19 | 602 | } |
20 | |
|
21 | 606 | public PrintStreamStepdocReporter(PrintStream output) { |
22 | 606 | this.output = output; |
23 | 606 | } |
24 | |
|
25 | |
public void stepdocsMatching(String stepAsString, |
26 | |
List<Stepdoc> stepdocs, List<Object> stepsInstances) { |
27 | 3 | if (stepdocs.size() > 0) { |
28 | 1 | output(format(STEP_MATCHED_BY, stepAsString)); |
29 | 1 | outputStepdocs(stepdocs); |
30 | |
} else { |
31 | 2 | output(format(STEP_NOT_MATCHED, stepAsString)); |
32 | |
} |
33 | 3 | outputStepsInstances(stepsInstances); |
34 | 3 | } |
35 | |
|
36 | |
public void stepdocs(List<Stepdoc> stepdocs, List<Object> stepsInstances) { |
37 | 1 | outputStepdocs(stepdocs); |
38 | 1 | outputStepsInstances(stepsInstances); |
39 | 1 | } |
40 | |
|
41 | |
private void outputStepdocs(List<Stepdoc> stepdocs) { |
42 | 2 | for (Stepdoc stepdoc : stepdocs) { |
43 | 4 | output(format(STEPDOC, stepdoc.getStartingWord(), stepdoc.getPattern())); |
44 | 4 | output(stepdoc.getMethodSignature()); |
45 | |
} |
46 | 2 | } |
47 | |
|
48 | |
private void outputStepsInstances(List<Object> stepsInstances) { |
49 | 4 | if (stepsInstances.size() > 0) { |
50 | 3 | output("from steps instances:"); |
51 | 3 | for (Object stepsInstance : stepsInstances) { |
52 | 3 | output(stepsInstance.getClass().getName()); |
53 | |
} |
54 | |
} else { |
55 | 1 | output("as no steps instances are provided"); |
56 | |
} |
57 | 4 | } |
58 | |
|
59 | |
private void output(Object object) { |
60 | 18 | Format.println(output, object); |
61 | 18 | } |
62 | |
|
63 | |
} |