1 package org.apache.maven.plugin.surefire.extensions.junit5;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.plugin.surefire.extensions.SurefireStatelessTestsetInfoReporter;
23 import org.apache.maven.plugin.surefire.log.api.ConsoleLogger;
24 import org.apache.maven.plugin.surefire.report.ConsoleReporter;
25 import org.apache.maven.plugin.surefire.report.FileReporter;
26 import org.apache.maven.plugin.surefire.report.TestSetStats;
27 import org.apache.maven.plugin.surefire.report.WrappedReportEntry;
28 import org.apache.maven.surefire.extensions.StatelessTestsetInfoConsoleReportEventListener;
29 import org.apache.maven.surefire.extensions.StatelessTestsetInfoFileReportEventListener;
30
31 import java.io.File;
32 import java.nio.charset.Charset;
33
34
35
36
37
38
39
40
41 public class JUnit5StatelessTestsetInfoReporter
42 extends SurefireStatelessTestsetInfoReporter
43 {
44
45
46
47
48
49 private boolean usePhrasedFileName;
50
51
52
53
54
55
56
57
58 private boolean usePhrasedClassNameInRunning;
59
60
61
62
63
64
65
66
67 private boolean usePhrasedClassNameInTestCaseSummary;
68
69 public boolean isUsePhrasedFileName()
70 {
71 return usePhrasedFileName;
72 }
73
74 public void setUsePhrasedFileName( boolean usePhrasedFileName )
75 {
76 this.usePhrasedFileName = usePhrasedFileName;
77 }
78
79 public boolean isUsePhrasedClassNameInRunning()
80 {
81 return usePhrasedClassNameInRunning;
82 }
83
84 public void setUsePhrasedClassNameInRunning( boolean usePhrasedClassNameInRunning )
85 {
86 this.usePhrasedClassNameInRunning = usePhrasedClassNameInRunning;
87 }
88
89 public boolean isUsePhrasedClassNameInTestCaseSummary()
90 {
91 return usePhrasedClassNameInTestCaseSummary;
92 }
93
94 public void setUsePhrasedClassNameInTestCaseSummary( boolean usePhrasedClassNameInTestCaseSummary )
95 {
96 this.usePhrasedClassNameInTestCaseSummary = usePhrasedClassNameInTestCaseSummary;
97 }
98
99 @Override
100 public StatelessTestsetInfoConsoleReportEventListener<WrappedReportEntry, TestSetStats> createListener(
101 ConsoleLogger logger )
102 {
103 return new ConsoleReporter( logger, isUsePhrasedClassNameInRunning(),
104 isUsePhrasedClassNameInTestCaseSummary() );
105 }
106
107 @Override
108 public StatelessTestsetInfoFileReportEventListener<WrappedReportEntry, TestSetStats> createListener(
109 File reportsDirectory, String reportNameSuffix, Charset encoding )
110 {
111 return new FileReporter( reportsDirectory, reportNameSuffix, encoding, isUsePhrasedFileName(),
112 isUsePhrasedClassNameInRunning(), isUsePhrasedClassNameInTestCaseSummary() );
113 }
114
115 @Override
116 public Object clone( ClassLoader target )
117 {
118 try
119 {
120 Object clone = super.clone( target );
121
122 Class<?> cls = clone.getClass();
123 cls.getMethod( "setUsePhrasedFileName", boolean.class )
124 .invoke( clone, isUsePhrasedFileName() );
125 cls.getMethod( "setUsePhrasedClassNameInTestCaseSummary", boolean.class )
126 .invoke( clone, isUsePhrasedFileName() );
127 cls.getMethod( "setUsePhrasedClassNameInRunning", boolean.class )
128 .invoke( clone, isUsePhrasedFileName() );
129
130 return clone;
131 }
132 catch ( ReflectiveOperationException e )
133 {
134 throw new IllegalStateException( e.getLocalizedMessage() );
135 }
136 }
137
138 @Override
139 public String toString()
140 {
141 return "JUnit5StatelessTestsetInfoReporter{"
142 + "disable=" + isDisable()
143 + ", usePhrasedFileName=" + isUsePhrasedFileName()
144 + ", usePhrasedClassNameInRunning=" + isUsePhrasedClassNameInRunning()
145 + ", usePhrasedClassNameInTestCaseSummary=" + isUsePhrasedClassNameInTestCaseSummary()
146 + "}";
147 }
148 }