48
48
import java .util .List ;
49
49
import java .util .Map ;
50
50
import java .util .UUID ;
51
+ import java .util .stream .Collectors ;
51
52
import java .util .stream .Stream ;
52
53
53
54
import static org .assertj .core .api .Assertions .assertThat ;
@@ -93,7 +94,7 @@ void testMavenMojoProjectParserGenerateProvenance() {
93
94
// and assert markers
94
95
int numExpectedMarkers = 5 ;
95
96
96
- if (System .getenv ("GITHUB_ACTION_REF" ) != null ) {
97
+ if (System .getenv ("GITHUB_ACTION_REF" ) != null ) {
97
98
numExpectedMarkers = 6 ; // CI marker
98
99
}
99
100
assertThat (markers ).hasSize (numExpectedMarkers );
@@ -123,7 +124,18 @@ void testMavenMojoProjectParserGenerateProvenance() {
123
124
String gitHash = getCurrentGitHash ();
124
125
GitProvenance expectedGitProvenance = GitProvenance .fromProjectDirectory (baseDir , BuildEnvironment .build (System ::getenv ));
125
126
GitProvenance gitProvenance = findMarker (markers , GitProvenance .class );
126
- assertThat (countGetters (gitProvenance )).isEqualTo (9 );
127
+ assertThat (getGetterNames (gitProvenance )).containsExactlyInAnyOrder (
128
+ "getId()" ,
129
+ "getBranch()" ,
130
+ "getEol()" ,
131
+ "getOrigin()" ,
132
+ "getAutocrlf()" ,
133
+ "getRepositoryName()" ,
134
+ "getChange()" ,
135
+ "getOrganizationName(java.lang.String)" ,
136
+ "getOrganizationName()" ,
137
+ "getCommitters()"
138
+ );
127
139
assertThat (gitProvenance .getId ()).isInstanceOf (UUID .class );
128
140
assertThat (gitProvenance .getBranch ()).isEqualTo (branch );
129
141
assertThat (gitProvenance .getEol ()).isEqualTo (GitProvenance .EOL .Native );
@@ -133,6 +145,7 @@ void testMavenMojoProjectParserGenerateProvenance() {
133
145
assertThat (gitProvenance .getChange ()).isEqualTo (gitHash );
134
146
assertThat (gitProvenance .getOrganizationName ()).isEqualTo ("spring-projects-experimental" );
135
147
assertThat (gitProvenance .getOrganizationName ("https://github.com" )).isEqualTo ("spring-projects-experimental" );
148
+ assertThat (gitProvenance .getCommitters ().stream ().map (c -> c .getName ()).toList ()).contains ("Fabian Krüger" );
136
149
137
150
OperatingSystemProvenance operatingSystemProvenance = findMarker (markers , OperatingSystemProvenance .class );
138
151
OperatingSystemProvenance expected = OperatingSystemProvenance .current ();
@@ -152,17 +165,17 @@ void testMavenMojoProjectParserGenerateProvenance() {
152
165
private <T extends Marker > T findMarker (List <Marker > markers , Class <T > markerClass ) {
153
166
return (T ) markers .stream ().filter (m -> markerClass .isAssignableFrom (m .getClass ())).findFirst ().orElseThrow ();
154
167
}
155
- }
156
-
157
168
169
+ }
158
170
159
171
160
172
@ Nested
161
173
public class GivenSimpleMultiModuleProject {
162
174
175
+
163
176
@ Test
164
177
@ DisplayName ("Should Create Provenance Markers" )
165
- void shouldCreateProvenanceMarkers () {
178
+ void shouldCreateProvenanceMarkers () {
166
179
167
180
// The MavenMojoProjectParserFactory creates an instance of OpenRewrite's MavenMojoProjectParser
168
181
// We provide a mock, there's a test for MavenMojoProjectParser
@@ -202,13 +215,11 @@ void shouldCreateProvenanceMarkers() {
202
215
// assertThat(resourceListMap.get(path2)).isEqualTo(markers2);
203
216
}
204
217
205
- /**
206
- * With a configured maven-compile-plugin the source and target version should be taken from the plugin
207
- */
208
218
@ Nested
209
219
public class GivenSimpleMultiModuleProjectWithCompilerPlugin {
210
220
211
221
}
222
+
212
223
}
213
224
214
225
private void verifyMarkers (Resource resource , Path baseDir , Map <Path , List <Marker >> resourceListMap , String projectName , String groupId , String artifactModule , String version ) {
@@ -225,7 +236,10 @@ private void verifyMarkers(Resource resource, Path baseDir, Map<Path, List<Marke
225
236
assertThat (jv .getId ()).isInstanceOf (UUID .class );
226
237
227
238
JavaProject jp = findMarker (resourceListMap , resource , JavaProject .class );
228
- assertThat (countGetters (jp )).isEqualTo (3 );
239
+ assertThat (getGetterNames (jp )).containsExactly (
240
+ "getId" ,
241
+ "getProjectName"
242
+ );
229
243
assertThat (jp .getId ()).isInstanceOf (UUID .class );
230
244
assertThat (jp .getProjectName ()).isEqualTo (projectName );
231
245
JavaProject .Publication publication = jp .getPublication ();
@@ -294,6 +308,17 @@ private long countGetters(Object marker) {
294
308
.count ();
295
309
}
296
310
311
+ /**
312
+ * With a configured maven-compile-plugin the source and target version should be taken from the plugin
313
+ */
314
+ private static List <String > getGetterNames (Object marker ) {
315
+ return getGetter (marker ).map (m -> m .getName () + "(" + renderArgs (m ) + ")" ).toList ();
316
+ }
317
+
318
+ private static String renderArgs (Method m ) {
319
+ return Arrays .stream (m .getParameters ()).map (p -> p .getType ().getName ()).collect (Collectors .joining (", " ));
320
+ }
321
+
297
322
@ NotNull
298
323
private static Stream <Method > getGetter (Object marker ) {
299
324
return Arrays
@@ -326,6 +351,7 @@ private <T> T findMarker(Map<Path, List<Marker>> markedResources, Resource pom,
326
351
327
352
public static class MyLogger implements Log {
328
353
354
+
329
355
@ Override
330
356
public boolean isDebugEnabled () {
331
357
return false ;
0 commit comments