1 package org.apache.maven.surefire.report;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.BufferedOutputStream;
23 import java.io.OutputStreamWriter;
24 import java.io.PrintStream;
25 import java.io.PrintWriter;
26
27
28
29
30
31
32 public abstract class AbstractConsoleReporter
33 extends AbstractTextReporter
34 implements RunReporter
35 {
36 private static final String TEST_SET_STARTING_PREFIX = "Running ";
37
38 private static final String TEST_SET_STARTING_GROUP_PREFIX = " (of ";
39
40 private static final String TEST_SET_STARTING_GROUP_SUFIX = ")";
41
42 private static final int BUFFER_SIZE = 4096;
43
44 private static final PrintStream ORIGINAL_SYSTEM_OUT = System.out;
45
46 AbstractConsoleReporter( String format, ReporterConfiguration reporterConfiguration )
47 {
48
49 super(
50 new PrintWriter( new OutputStreamWriter( new BufferedOutputStream( ORIGINAL_SYSTEM_OUT, BUFFER_SIZE ) ) ),
51 format, reporterConfiguration );
52 }
53
54 public void testSetStarting( ReportEntry report )
55 throws ReporterException
56 {
57 super.testSetStarting( report );
58
59 writeMessage( getTestSetStartingMessage( report ) );
60 }
61
62 public void runStarting()
63 {
64 writeHeading( "" );
65 writeHeading( "-------------------------------------------------------" );
66 writeHeading( " T E S T S" );
67 writeHeading( "-------------------------------------------------------" );
68 }
69
70 void writeHeading( String message )
71 {
72 writer.println( message );
73 writer.flush();
74 }
75
76
77
78
79
80
81
82
83 public static String getTestSetStartingMessage( ReportEntry report )
84 {
85 StringBuffer message = new StringBuffer();
86 message.append( TEST_SET_STARTING_PREFIX );
87 message.append( report.getName() );
88
89 if ( report.getGroup() != null && !report.getName().equals( report.getGroup() ) )
90 {
91 message.append( TEST_SET_STARTING_GROUP_PREFIX );
92 message.append( report.getGroup() );
93 message.append( TEST_SET_STARTING_GROUP_SUFIX );
94 }
95 return message.toString();
96 }
97
98
99
100
101
102
103
104
105 public static ReportEntry parseTestSetStartingMessage( String message )
106 {
107 String name;
108 String group = null;
109 int i = message.indexOf( TEST_SET_STARTING_GROUP_PREFIX );
110 int j;
111 if ( i >= 0 )
112 {
113 j = message.indexOf( TEST_SET_STARTING_GROUP_SUFIX );
114 if ( j <= 0 )
115 {
116 throw new RuntimeException( "Message provided can not be parsed" );
117 }
118 group = message.substring( i + TEST_SET_STARTING_GROUP_PREFIX.length(), j );
119 }
120 else
121 {
122 i = message.length();
123 if ( i <= 0 )
124 {
125 throw new RuntimeException( "Message provided can not be parsed" );
126 }
127 }
128 name = message.substring( TEST_SET_STARTING_PREFIX.length(), i );
129 return CategorizedReportEntry.nameGroup( name, group );
130 }
131
132
133
134
135
136
137
138
139 public static boolean isTestSetStartingMessage( String message )
140 {
141 return message.startsWith( TEST_SET_STARTING_PREFIX );
142 }
143
144 }