Skip to content

Commit 4cbed4c

Browse files
authored
Add missing UsesMethod and UsesType preconditions to recipes that visit every source file (#1227)
1 parent 7387a47 commit 4cbed4c

12 files changed

Lines changed: 71 additions & 22 deletions

‎src/main/java/org/openrewrite/java/testing/assertj/JUnitTryFailToAssertThatThrownBy.java‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717

1818
import lombok.Getter;
1919
import org.openrewrite.ExecutionContext;
20+
import org.openrewrite.Preconditions;
2021
import org.openrewrite.Recipe;
2122
import org.openrewrite.TreeVisitor;
2223
import org.openrewrite.java.JavaParser;
2324
import org.openrewrite.java.JavaTemplate;
2425
import org.openrewrite.java.JavaVisitor;
2526
import org.openrewrite.java.MethodMatcher;
27+
import org.openrewrite.java.search.UsesMethod;
2628
import org.openrewrite.java.tree.*;
2729

2830
import java.util.ArrayList;
@@ -48,7 +50,7 @@ public class JUnitTryFailToAssertThatThrownBy extends Recipe {
4850

4951
@Override
5052
public TreeVisitor<?, ExecutionContext> getVisitor() {
51-
return new JavaVisitor<ExecutionContext>() {
53+
return Preconditions.check(Preconditions.or(new UsesMethod<>(ASSERTJ_FAIL_MATCHER), new UsesMethod<>(JUPITER_FAIL_MATCHER), new UsesMethod<>(JUNIT4_FAIL_MATCHER), new UsesMethod<>(JUNIT_FAIL_MATCHER)), new JavaVisitor<ExecutionContext>() {
5254
@Override
5355
public J visitTry(J.Try tryBlock, ExecutionContext ctx) {
5456
J.Try try_ = (J.Try) super.visitTry(tryBlock, ctx);
@@ -187,6 +189,6 @@ private String buildTemplate(List<Statement> lambdaStatements, String exceptionT
187189

188190
return template.toString();
189191
}
190-
};
192+
});
191193
}
192194
}

‎src/main/java/org/openrewrite/java/testing/assertj/SimplifyAssertJAssertion.java‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,14 @@
2121
import org.jspecify.annotations.Nullable;
2222
import org.openrewrite.ExecutionContext;
2323
import org.openrewrite.Option;
24+
import org.openrewrite.Preconditions;
2425
import org.openrewrite.Recipe;
2526
import org.openrewrite.TreeVisitor;
2627
import org.openrewrite.java.JavaIsoVisitor;
2728
import org.openrewrite.java.JavaParser;
2829
import org.openrewrite.java.JavaTemplate;
2930
import org.openrewrite.java.MethodMatcher;
31+
import org.openrewrite.java.search.UsesMethod;
3032
import org.openrewrite.java.tree.J;
3133
import org.openrewrite.java.tree.TypeUtils;
3234

@@ -67,7 +69,7 @@ public class SimplifyAssertJAssertion extends Recipe {
6769
@Override
6870
public TreeVisitor<?, ExecutionContext> getVisitor() {
6971
final MethodMatcher assertToReplace = new MethodMatcher("org.assertj.core.api.* " + this.assertToReplace + "(..)");
70-
return new JavaIsoVisitor<ExecutionContext>() {
72+
return Preconditions.check(new UsesMethod<>(assertToReplace), new JavaIsoVisitor<ExecutionContext>() {
7173
@Override
7274
public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, ExecutionContext ctx) {
7375
J.MethodInvocation mi = super.visitMethodInvocation(method, ctx);
@@ -94,6 +96,6 @@ public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, Execu
9496
.build()
9597
.apply(getCursor(), mi.getCoordinates().replace(), mi.getSelect());
9698
}
97-
};
99+
});
98100
}
99101
}

‎src/main/java/org/openrewrite/java/testing/assertj/SimplifyChainedAssertJAssertion.java‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,14 @@
2121
import org.jspecify.annotations.Nullable;
2222
import org.openrewrite.ExecutionContext;
2323
import org.openrewrite.Option;
24+
import org.openrewrite.Preconditions;
2425
import org.openrewrite.Recipe;
2526
import org.openrewrite.TreeVisitor;
2627
import org.openrewrite.java.JavaIsoVisitor;
2728
import org.openrewrite.java.JavaParser;
2829
import org.openrewrite.java.JavaTemplate;
2930
import org.openrewrite.java.MethodMatcher;
31+
import org.openrewrite.java.search.UsesMethod;
3032
import org.openrewrite.java.tree.Expression;
3133
import org.openrewrite.java.tree.J;
3234
import org.openrewrite.java.tree.JavaType;
@@ -94,7 +96,7 @@ public TreeVisitor<?, ExecutionContext> getVisitor() {
9496
new MethodMatcher("org.assertj.core.api.* overridingErrorMessage(..)")
9597
);
9698

97-
return new JavaIsoVisitor<ExecutionContext>() {
99+
return Preconditions.check(Preconditions.and(new UsesMethod<>(chainedAssertMatcher), new UsesMethod<>(assertToReplace)), new JavaIsoVisitor<ExecutionContext>() {
98100
@Override
99101
public J.MethodInvocation visitMethodInvocation(J.MethodInvocation methodInvocation, ExecutionContext ctx) {
100102
J.MethodInvocation mi = super.visitMethodInvocation(methodInvocation, ctx);
@@ -228,6 +230,6 @@ private String getStringTemplateAndAppendArguments(J.MethodInvocation assertThat
228230

229231
return "assertThat(#{any()}).%s(#{any()})";
230232
}
231-
};
233+
});
232234
}
233235
}

‎src/main/java/org/openrewrite/java/testing/cleanup/AssertEqualsBooleanToAssertBoolean.java‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717

1818
import lombok.Getter;
1919
import org.openrewrite.ExecutionContext;
20+
import org.openrewrite.Preconditions;
2021
import org.openrewrite.Recipe;
2122
import org.openrewrite.TreeVisitor;
2223
import org.openrewrite.java.JavaParser;
2324
import org.openrewrite.java.JavaTemplate;
2425
import org.openrewrite.java.JavaVisitor;
2526
import org.openrewrite.java.MethodMatcher;
27+
import org.openrewrite.java.search.UsesMethod;
2628
import org.openrewrite.java.tree.Expression;
2729
import org.openrewrite.java.tree.J;
2830
import org.openrewrite.java.tree.JavaType;
@@ -39,7 +41,7 @@ public class AssertEqualsBooleanToAssertBoolean extends Recipe {
3941

4042
@Override
4143
public TreeVisitor<?, ExecutionContext> getVisitor() {
42-
return new JavaVisitor<ExecutionContext>() {
44+
return Preconditions.check(new UsesMethod<>(ASSERT_EQUALS), new JavaVisitor<ExecutionContext>() {
4345

4446
@Override
4547
public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, ExecutionContext ctx) {
@@ -90,6 +92,6 @@ private boolean isBooleanLiteral(J.MethodInvocation method) {
9092

9193
return false;
9294
}
93-
};
95+
});
9496
}
9597
}

‎src/main/java/org/openrewrite/java/testing/cleanup/AssertFalseNegationToAssertTrue.java‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717

1818
import lombok.Getter;
1919
import org.openrewrite.ExecutionContext;
20+
import org.openrewrite.Preconditions;
2021
import org.openrewrite.Recipe;
2122
import org.openrewrite.TreeVisitor;
2223
import org.openrewrite.java.JavaParser;
2324
import org.openrewrite.java.JavaTemplate;
2425
import org.openrewrite.java.JavaVisitor;
2526
import org.openrewrite.java.MethodMatcher;
27+
import org.openrewrite.java.search.UsesMethod;
2628
import org.openrewrite.java.tree.J;
2729

2830
public class AssertFalseNegationToAssertTrue extends Recipe {
@@ -38,7 +40,7 @@ public class AssertFalseNegationToAssertTrue extends Recipe {
3840

3941
@Override
4042
public TreeVisitor<?, ExecutionContext> getVisitor() {
41-
return new JavaVisitor<ExecutionContext>() {
43+
return Preconditions.check(new UsesMethod<>(ASSERT_FALSE), new JavaVisitor<ExecutionContext>() {
4244

4345
@Override
4446
public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, ExecutionContext ctx) {
@@ -89,6 +91,6 @@ private boolean isUnaryOperatorNot(J.MethodInvocation method) {
8991

9092
return false;
9193
}
92-
};
94+
});
9395
}
9496
}

‎src/main/java/org/openrewrite/java/testing/cleanup/AssertNotEqualsBooleanToAssertBoolean.java‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717

1818
import lombok.Getter;
1919
import org.openrewrite.ExecutionContext;
20+
import org.openrewrite.Preconditions;
2021
import org.openrewrite.Recipe;
2122
import org.openrewrite.TreeVisitor;
2223
import org.openrewrite.java.JavaParser;
2324
import org.openrewrite.java.JavaTemplate;
2425
import org.openrewrite.java.JavaVisitor;
2526
import org.openrewrite.java.MethodMatcher;
27+
import org.openrewrite.java.search.UsesMethod;
2628
import org.openrewrite.java.tree.Expression;
2729
import org.openrewrite.java.tree.J;
2830
import org.openrewrite.java.tree.JavaType;
@@ -39,7 +41,7 @@ public class AssertNotEqualsBooleanToAssertBoolean extends Recipe {
3941

4042
@Override
4143
public TreeVisitor<?, ExecutionContext> getVisitor() {
42-
return new JavaVisitor<ExecutionContext>() {
44+
return Preconditions.check(new UsesMethod<>(ASSERT_NOT_EQUALS), new JavaVisitor<ExecutionContext>() {
4345

4446
@Override
4547
public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, ExecutionContext ctx) {
@@ -89,6 +91,6 @@ private boolean isBooleanLiteral(J.MethodInvocation method) {
8991

9092
return false;
9193
}
92-
};
94+
});
9395
}
9496
}

‎src/main/java/org/openrewrite/java/testing/hamcrest/AssertThatBooleanToAssertJ.java‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717

1818
import lombok.Getter;
1919
import org.openrewrite.ExecutionContext;
20+
import org.openrewrite.Preconditions;
2021
import org.openrewrite.Recipe;
2122
import org.openrewrite.TreeVisitor;
2223
import org.openrewrite.java.JavaIsoVisitor;
2324
import org.openrewrite.java.JavaParser;
2425
import org.openrewrite.java.JavaTemplate;
2526
import org.openrewrite.java.MethodMatcher;
27+
import org.openrewrite.java.search.UsesMethod;
2628
import org.openrewrite.java.tree.Expression;
2729
import org.openrewrite.java.tree.J;
2830

@@ -37,7 +39,7 @@ public class AssertThatBooleanToAssertJ extends Recipe {
3739

3840
@Override
3941
public TreeVisitor<?, ExecutionContext> getVisitor() {
40-
return new JavaIsoVisitor<ExecutionContext>() {
42+
return Preconditions.check(new UsesMethod<>(ASSERT_THAT_MATCHER), new JavaIsoVisitor<ExecutionContext>() {
4143
@Override
4244
public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, ExecutionContext ctx) {
4345
J.MethodInvocation mi = super.visitMethodInvocation(method, ctx);
@@ -54,6 +56,6 @@ public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, Execu
5456
}
5557
return mi;
5658
}
57-
};
59+
});
5860
}
5961
}

‎src/main/java/org/openrewrite/java/testing/junit5/AssertTrueInstanceofToAssertInstanceOf.java‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@
1717

1818
import lombok.Getter;
1919
import org.openrewrite.ExecutionContext;
20+
import org.openrewrite.Preconditions;
2021
import org.openrewrite.Recipe;
2122
import org.openrewrite.Tree;
2223
import org.openrewrite.TreeVisitor;
2324
import org.openrewrite.java.JavaIsoVisitor;
2425
import org.openrewrite.java.JavaParser;
2526
import org.openrewrite.java.JavaTemplate;
2627
import org.openrewrite.java.MethodMatcher;
28+
import org.openrewrite.java.search.UsesMethod;
2729
import org.openrewrite.java.tree.Expression;
2830
import org.openrewrite.java.tree.J;
2931
import org.openrewrite.java.tree.JLeftPadded;
@@ -47,7 +49,7 @@ public class AssertTrueInstanceofToAssertInstanceOf extends Recipe {
4749

4850
@Override
4951
public TreeVisitor<?, ExecutionContext> getVisitor() {
50-
return new JavaIsoVisitor<ExecutionContext>() {
52+
return Preconditions.check(Preconditions.or(new UsesMethod<>(JUNIT5_ASSERT_TRUE), new UsesMethod<>(JUNIT4_ASSERT_TRUE)), new JavaIsoVisitor<ExecutionContext>() {
5153

5254
@Override
5355
public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, ExecutionContext ctx) {
@@ -125,6 +127,6 @@ private Expression toClassLiteral(TypedTree clazz) {
125127
return new J.FieldAccess(Tree.randomId(), Space.EMPTY, Markers.EMPTY,
126128
target, JLeftPadded.build(classKeyword), classType);
127129
}
128-
};
130+
});
129131
}
130132
}

‎src/main/java/org/openrewrite/java/testing/junit5/CleanupKotlinJUnit5AssertionImports.java‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@
1717

1818
import lombok.Getter;
1919
import org.openrewrite.ExecutionContext;
20+
import org.openrewrite.Preconditions;
2021
import org.openrewrite.Recipe;
2122
import org.openrewrite.TreeVisitor;
23+
import org.openrewrite.java.search.UsesType;
2224
import org.openrewrite.java.tree.J;
2325
import org.openrewrite.kotlin.KotlinIsoVisitor;
2426
import org.openrewrite.kotlin.tree.K;
@@ -50,7 +52,7 @@ public class CleanupKotlinJUnit5AssertionImports extends Recipe {
5052

5153
@Override
5254
public TreeVisitor<?, ExecutionContext> getVisitor() {
53-
return new KotlinIsoVisitor<ExecutionContext>() {
55+
return Preconditions.check(new UsesType<>("org.junit.jupiter.api.Assertions", false), new KotlinIsoVisitor<ExecutionContext>() {
5456
@Override
5557
public K.CompilationUnit visitCompilationUnit(K.CompilationUnit cu, ExecutionContext ctx) {
5658
// Check if there's a wildcard import for org.junit.jupiter.api.*
@@ -89,6 +91,6 @@ public K.CompilationUnit visitCompilationUnit(K.CompilationUnit cu, ExecutionCon
8991

9092
return cu.withImports(filteredImports);
9193
}
92-
};
94+
});
9395
}
9496
}

‎src/main/java/org/openrewrite/java/testing/junit6/MinimumJreConditions.java‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.openrewrite.*;
2424
import org.openrewrite.internal.ListUtils;
2525
import org.openrewrite.java.*;
26+
import org.openrewrite.java.search.UsesType;
2627
import org.openrewrite.java.trait.Annotated;
2728
import org.openrewrite.java.trait.Literal;
2829
import org.openrewrite.java.tree.Expression;
@@ -70,7 +71,7 @@ public class MinimumJreConditions extends Recipe {
7071

7172
@Override
7273
public TreeVisitor<?, ExecutionContext> getVisitor() {
73-
return new JavaIsoVisitor<ExecutionContext>() {
74+
return Preconditions.check(Preconditions.or(new UsesType<>(ENABLED_ON_JRE, false), new UsesType<>(DISABLED_ON_JRE, false), new UsesType<>(ENABLED_FOR_JRE_RANGE, false), new UsesType<>(DISABLED_FOR_JRE_RANGE, false)), new JavaIsoVisitor<ExecutionContext>() {
7475

7576
@Override
7677
public J.CompilationUnit visitCompilationUnit(J.CompilationUnit cu, ExecutionContext ctx) {
@@ -287,7 +288,7 @@ private List<String> extractVersionsFromAnnotationArgument(Expression expression
287288
}
288289
return singletonList(expression.toString());
289290
}
290-
};
291+
});
291292
}
292293

293294
private static Optional<Expression> getDefaultAttribute(Annotated annotated) {

0 commit comments

Comments
 (0)