@@ -50,6 +50,7 @@ public class JUnitParamsRunnerToParameterized extends Recipe {
5050
5151 private static final String INIT_METHOD_REFERENCES = "init-method-references" ;
5252 private static final String PARAMETERS_FOR_PREFIX = "parametersFor" ;
53+ private static final String PARAMETERIZED_TESTS = "parameterized-tests" ;
5354 private static final String INIT_METHODS_MAP = "named-parameters-map" ;
5455 private static final String CONVERSION_NOT_SUPPORTED = "conversion-not-supported" ;
5556
@@ -82,6 +83,7 @@ public J.ClassDeclaration visitClassDeclaration(J.ClassDeclaration classDecl, Ex
8283 doAfterVisit (new ParametersNoArgsImplicitMethodSource (initMethods ,
8384 getCursor ().computeMessageIfAbsent (INIT_METHODS_MAP , v -> new HashMap <>()),
8485 getCursor ().computeMessageIfAbsent (CONVERSION_NOT_SUPPORTED , v -> new HashSet <>()),
86+ getCursor ().computeMessageIfAbsent (PARAMETERIZED_TESTS , v -> new HashSet <>()),
8587 ctx ));
8688 }
8789 return cd ;
@@ -103,6 +105,8 @@ public J.Annotation visitAnnotation(J.Annotation annotation, ExecutionContext ct
103105 J .Annotation anno = super .visitAnnotation (annotation , ctx );
104106 Cursor classDeclCursor = getCursor ().dropParentUntil (J .ClassDeclaration .class ::isInstance );
105107 if (PARAMETERS_MATCHER .matches (anno )) {
108+ classDeclCursor .computeMessageIfAbsent (PARAMETERIZED_TESTS , v -> new HashSet <>())
109+ .add (getCursor ().firstEnclosing (J .MethodDeclaration .class ).getSimpleName ());
106110 String annotationArgumentValue = getAnnotationArgumentForInitMethod (anno , "method" , "named" );
107111 if (annotationArgumentValue != null ) {
108112 for (String method : annotationArgumentValue .split ("," )) {
@@ -178,16 +182,18 @@ private static class ParametersNoArgsImplicitMethodSource extends JavaIsoVisitor
178182
179183 private final Set <String > initMethods ;
180184 private final Set <String > unsupportedConversions ;
185+ private final Set <String > parameterizedTests ;
181186 private final Map <String , String > initMethodReferences ;
182187
183188 private final JavaTemplate parameterizedTestTemplate ;
184189 private final JavaTemplate parameterizedTestTemplateWithName ;
185190 private final JavaTemplate methodSourceTemplate ;
186191
187- public ParametersNoArgsImplicitMethodSource (Set <String > initMethods , Map <String , String > initMethodReferences , Set <String > unsupportedConversions , ExecutionContext ctx ) {
192+ public ParametersNoArgsImplicitMethodSource (Set <String > initMethods , Map <String , String > initMethodReferences , Set <String > unsupportedConversions , Set < String > parameterizedTests , ExecutionContext ctx ) {
188193 this .initMethods = initMethods ;
189194 this .initMethodReferences = initMethodReferences ;
190195 this .unsupportedConversions = unsupportedConversions ;
196+ this .parameterizedTests = parameterizedTests ;
191197
192198 // build @ParameterizedTest template
193199 JavaParser .Builder <?, ?> javaParser = JavaParser .fromJavaVersion ()
@@ -254,6 +260,9 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration method, Ex
254260
255261 private J .Annotation maybeReplaceTestAnnotation (Cursor anno , @ Nullable String parameterizedTestArgument ) {
256262 if (JUPITER_TEST_ANNOTATION_MATCHER .matches (anno .getValue ()) || JUNIT_TEST_ANNOTATION_MATCHER .matches (anno .getValue ())) {
263+ if (!parameterizedTests .contains (anno .firstEnclosing (J .MethodDeclaration .class ).getSimpleName ())) {
264+ return anno .getValue ();
265+ }
257266 if (parameterizedTestArgument == null ) {
258267 return parameterizedTestTemplate .apply (anno , ((J .Annotation ) anno .getValue ()).getCoordinates ().replace ());
259268 } else {
0 commit comments