4848import java .util .List ;
4949import java .util .Map ;
5050import java .util .UUID ;
51+ import java .util .stream .Collectors ;
5152import java .util .stream .Stream ;
5253
5354import static org .assertj .core .api .Assertions .assertThat ;
@@ -93,7 +94,7 @@ void testMavenMojoProjectParserGenerateProvenance() {
9394 // and assert markers
9495 int numExpectedMarkers = 5 ;
9596
96- if (System .getenv ("GITHUB_ACTION_REF" ) != null ) {
97+ if (System .getenv ("GITHUB_ACTION_REF" ) != null ) {
9798 numExpectedMarkers = 6 ; // CI marker
9899 }
99100 assertThat (markers ).hasSize (numExpectedMarkers );
@@ -123,7 +124,18 @@ void testMavenMojoProjectParserGenerateProvenance() {
123124 String gitHash = getCurrentGitHash ();
124125 GitProvenance expectedGitProvenance = GitProvenance .fromProjectDirectory (baseDir , BuildEnvironment .build (System ::getenv ));
125126 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+ );
127139 assertThat (gitProvenance .getId ()).isInstanceOf (UUID .class );
128140 assertThat (gitProvenance .getBranch ()).isEqualTo (branch );
129141 assertThat (gitProvenance .getEol ()).isEqualTo (GitProvenance .EOL .Native );
@@ -133,6 +145,7 @@ void testMavenMojoProjectParserGenerateProvenance() {
133145 assertThat (gitProvenance .getChange ()).isEqualTo (gitHash );
134146 assertThat (gitProvenance .getOrganizationName ()).isEqualTo ("spring-projects-experimental" );
135147 assertThat (gitProvenance .getOrganizationName ("https://github.com" )).isEqualTo ("spring-projects-experimental" );
148+ assertThat (gitProvenance .getCommitters ().stream ().map (c -> c .getName ()).toList ()).contains ("Fabian Krüger" );
136149
137150 OperatingSystemProvenance operatingSystemProvenance = findMarker (markers , OperatingSystemProvenance .class );
138151 OperatingSystemProvenance expected = OperatingSystemProvenance .current ();
@@ -152,17 +165,17 @@ void testMavenMojoProjectParserGenerateProvenance() {
152165 private <T extends Marker > T findMarker (List <Marker > markers , Class <T > markerClass ) {
153166 return (T ) markers .stream ().filter (m -> markerClass .isAssignableFrom (m .getClass ())).findFirst ().orElseThrow ();
154167 }
155- }
156-
157168
169+ }
158170
159171
160172 @ Nested
161173 public class GivenSimpleMultiModuleProject {
162174
175+
163176 @ Test
164177 @ DisplayName ("Should Create Provenance Markers" )
165- void shouldCreateProvenanceMarkers () {
178+ void shouldCreateProvenanceMarkers () {
166179
167180 // The MavenMojoProjectParserFactory creates an instance of OpenRewrite's MavenMojoProjectParser
168181 // We provide a mock, there's a test for MavenMojoProjectParser
@@ -202,13 +215,11 @@ void shouldCreateProvenanceMarkers() {
202215// assertThat(resourceListMap.get(path2)).isEqualTo(markers2);
203216 }
204217
205- /**
206- * With a configured maven-compile-plugin the source and target version should be taken from the plugin
207- */
208218 @ Nested
209219 public class GivenSimpleMultiModuleProjectWithCompilerPlugin {
210220
211221 }
222+
212223 }
213224
214225 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
225236 assertThat (jv .getId ()).isInstanceOf (UUID .class );
226237
227238 JavaProject jp = findMarker (resourceListMap , resource , JavaProject .class );
228- assertThat (countGetters (jp )).isEqualTo (3 );
239+ assertThat (getGetterNames (jp )).containsExactly (
240+ "getId" ,
241+ "getProjectName"
242+ );
229243 assertThat (jp .getId ()).isInstanceOf (UUID .class );
230244 assertThat (jp .getProjectName ()).isEqualTo (projectName );
231245 JavaProject .Publication publication = jp .getPublication ();
@@ -294,6 +308,17 @@ private long countGetters(Object marker) {
294308 .count ();
295309 }
296310
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+
297322 @ NotNull
298323 private static Stream <Method > getGetter (Object marker ) {
299324 return Arrays
@@ -326,6 +351,7 @@ private <T> T findMarker(Map<Path, List<Marker>> markedResources, Resource pom,
326351
327352 public static class MyLogger implements Log {
328353
354+
329355 @ Override
330356 public boolean isDebugEnabled () {
331357 return false ;
0 commit comments