4
4
import static org .hamcrest .Matchers .containsString ;
5
5
import static org .hamcrest .Matchers .not ;
6
6
import static org .junit .jupiter .api .Assertions .assertEquals ;
7
- import static org .junit .jupiter .api .Assertions .assertTrue ;
8
7
9
8
import com .karuslabs .elementary .Results ;
10
9
import com .karuslabs .elementary .junit .JavacExtension ;
11
10
import com .karuslabs .elementary .junit .annotations .Inline ;
12
11
import com .karuslabs .elementary .junit .annotations .Options ;
13
12
import com .karuslabs .elementary .junit .annotations .Processors ;
14
13
import java .time .Year ;
15
- import java .util .Collections ;
16
- import java .util .List ;
17
14
import java .util .Locale ;
18
- import javax . tools . Diagnostic ;
19
- import javax . tools . JavaFileObject ;
15
+ import java . util . Set ;
16
+ import java . util . stream . Collectors ;
20
17
import org .junit .jupiter .api .Test ;
21
18
import org .junit .jupiter .api .extension .ExtendWith ;
22
19
@@ -36,7 +33,10 @@ class ConstructorProcessorTest {
36
33
})
37
34
@ Test
38
35
void basicOutput (Results results ) {
39
- assertEquals (Collections .emptyList (), results .diagnostics );
36
+ Set <String > diagnostics = results .diagnostics .stream ()
37
+ .map (d -> d .getMessage (Locale .ENGLISH ))
38
+ .collect (Collectors .toSet ());
39
+ assertEquals (Set .of ("Generating some/pkg/Stuff.stapler" ), diagnostics );
40
40
assertEquals (
41
41
"{constructor=count,name}" ,
42
42
Utils .normalizeProperties (Utils .getGeneratedResource (results .sources , "some/pkg/Stuff.stapler" )));
@@ -52,7 +52,10 @@ void basicOutput(Results results) {
52
52
})
53
53
@ Test
54
54
void preAnnotationCompatibility (Results results ) {
55
- assertEquals (Collections .emptyList (), results .diagnostics );
55
+ Set <String > diagnostics = results .diagnostics .stream ()
56
+ .map (d -> d .getMessage (Locale .ENGLISH ))
57
+ .collect (Collectors .toSet ());
58
+ assertEquals (Set .of ("Generating some/pkg/Stuff.stapler" ), diagnostics );
56
59
assertEquals (
57
60
"{constructor=name,count}" ,
58
61
Utils .normalizeProperties (Utils .getGeneratedResource (results .sources , "some/pkg/Stuff.stapler" )));
@@ -70,7 +73,10 @@ void preAnnotationCompatibility(Results results) {
70
73
@ Inline (name = "some.pkg.package-info" , source = "package some.pkg;" )
71
74
@ Test
72
75
void JENKINS_11739 (Results results ) {
73
- assertEquals (Collections .emptyList (), results .diagnostics );
76
+ Set <String > diagnostics = results .diagnostics .stream ()
77
+ .map (d -> d .getMessage (Locale .ENGLISH ))
78
+ .collect (Collectors .toSet ());
79
+ assertEquals (Set .of ("Generating some/pkg/Stuff.stapler" ), diagnostics );
74
80
assertEquals (
75
81
"{constructor=count,name}" ,
76
82
Utils .normalizeProperties (Utils .getGeneratedResource (results .sources , "some/pkg/Stuff.stapler" )));
@@ -87,10 +93,10 @@ void JENKINS_11739(Results results) {
87
93
})
88
94
@ Test
89
95
void privateConstructor (Results results ) {
90
- List < Diagnostic <? extends JavaFileObject >> diagnostics = results .diagnostics ;
91
- assertEquals ( 1 , diagnostics . size ());
92
- String msg = diagnostics . get ( 0 ). getMessage ( Locale . ENGLISH );
93
- assertTrue ( msg . contains ( " public" ), msg );
96
+ Set < String > diagnostics = results .diagnostics . stream ()
97
+ . map ( d -> d . getMessage ( Locale . ENGLISH ))
98
+ . collect ( Collectors . toSet () );
99
+ assertEquals ( Set . of ( "@DataBoundConstructor must be applied to a public constructor " ), diagnostics );
94
100
}
95
101
96
102
@ Inline (
@@ -104,10 +110,12 @@ void privateConstructor(Results results) {
104
110
})
105
111
@ Test
106
112
void abstractClass (Results results ) {
107
- List <Diagnostic <? extends JavaFileObject >> diagnostics = results .diagnostics ;
108
- assertEquals (1 , diagnostics .size ());
109
- String msg = diagnostics .get (0 ).getMessage (Locale .ENGLISH );
110
- assertTrue (msg .contains ("abstract" ), msg );
113
+ Set <String > diagnostics = results .diagnostics .stream ()
114
+ .map (d -> d .getMessage (Locale .ENGLISH ))
115
+ .collect (Collectors .toSet ());
116
+ assertEquals (
117
+ Set .of ("@DataBoundConstructor may not be used on an abstract class (only on concrete subclasses)" ),
118
+ diagnostics );
111
119
}
112
120
113
121
// issue-179
@@ -123,10 +131,10 @@ void abstractClass(Results results) {
123
131
})
124
132
@ Test
125
133
void duplicatedConstructor1 (Results results ) {
126
- List < Diagnostic <? extends JavaFileObject >> diagnostics = results .diagnostics ;
127
- assertEquals ( 1 , diagnostics . size ());
128
- String msg = diagnostics . get ( 0 ). getMessage ( Locale . ENGLISH );
129
- assertTrue ( msg . contains ( ConstructorProcessor .MESSAGE ), msg );
134
+ Set < String > diagnostics = results .diagnostics . stream ()
135
+ . map ( d -> d . getMessage ( Locale . ENGLISH ))
136
+ . collect ( Collectors . toSet () );
137
+ assertEquals ( Set . of ( "Generating some/pkg/Stuff.stapler" , ConstructorProcessor .MESSAGE ), diagnostics );
130
138
}
131
139
132
140
// issue-179
@@ -145,10 +153,10 @@ void duplicatedConstructor1(Results results) {
145
153
})
146
154
@ Test
147
155
void duplicatedConstructor2 (Results results ) {
148
- List < Diagnostic <? extends JavaFileObject >> diagnostics = results .diagnostics ;
149
- assertEquals ( 1 , diagnostics . size ());
150
- String msg = diagnostics . get ( 0 ). getMessage ( Locale . ENGLISH );
151
- assertTrue ( msg . contains ( ConstructorProcessor .MESSAGE ), msg );
156
+ Set < String > diagnostics = results .diagnostics . stream ()
157
+ . map ( d -> d . getMessage ( Locale . ENGLISH ))
158
+ . collect ( Collectors . toSet () );
159
+ assertEquals ( Set . of ( "Generating some/pkg/Stuff.stapler" , ConstructorProcessor .MESSAGE ), diagnostics );
152
160
}
153
161
154
162
// issue-179
@@ -164,8 +172,10 @@ void duplicatedConstructor2(Results results) {
164
172
})
165
173
@ Test
166
174
void duplicatedButNotAnnotatedConstructor (Results results ) {
167
- List <Diagnostic <? extends JavaFileObject >> diagnostics = results .diagnostics ;
168
- assertEquals (0 , diagnostics .size ());
175
+ Set <String > diagnostics = results .diagnostics .stream ()
176
+ .map (d -> d .getMessage (Locale .ENGLISH ))
177
+ .collect (Collectors .toSet ());
178
+ assertEquals (Set .of ("Generating some/pkg/Stuff.stapler" ), diagnostics );
169
179
}
170
180
// TODO nested classes use qualified rather than binary name
171
181
@@ -181,7 +191,10 @@ void duplicatedButNotAnnotatedConstructor(Results results) {
181
191
})
182
192
@ Test
183
193
void reproducibleBuild (Results results ) {
184
- assertEquals (Collections .emptyList (), results .diagnostics );
194
+ Set <String > diagnostics = results .diagnostics .stream ()
195
+ .map (d -> d .getMessage (Locale .ENGLISH ))
196
+ .collect (Collectors .toSet ());
197
+ assertEquals (Set .of ("Generating some/pkg/Stuff.stapler" ), diagnostics );
185
198
assertThat (
186
199
Utils .getGeneratedResource (results .sources , "some/pkg/Stuff.stapler" ),
187
200
not (containsString (Integer .toString (Year .now ().getValue ()))));
0 commit comments