Skip to content

Commit

Permalink
refactor: OpenRewrite recipe best practices
Browse files Browse the repository at this point in the history
Use this link to re-run the recipe: https://app.moderne.io/recipes/builder/XX1hrwagC?organizationId=T3BlblJld3JpdGU%3D

Co-authored-by: Moderne <team@moderne.io>
  • Loading branch information
timtebeek and TeamModerne committed Dec 8, 2023
1 parent 823b454 commit 89e1355
Show file tree
Hide file tree
Showing 14 changed files with 106 additions and 68 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ public TreeVisitor<?, ExecutionContext> getVisitor() {
return new JavaIsoVisitor<ExecutionContext>() {

@Override
public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, ExecutionContext executionContext) {
J.MethodInvocation mi = super.visitMethodInvocation(method, executionContext);
public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, ExecutionContext ctx) {
J.MethodInvocation mi = super.visitMethodInvocation(method, ctx);
MethodMatcher junit5Matcher = new MethodMatcher("org.junit.jupiter.api.Assertions assertTrue(boolean, ..)");
MethodMatcher junit4Matcher = new MethodMatcher("org.junit.Assert assertTrue(.., boolean)");

Expand Down Expand Up @@ -90,7 +90,7 @@ public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, Execu

JavaTemplate template = JavaTemplate
.builder("assertInstanceOf(#{}.class, #{any(java.lang.Object)}" + (reason != null ? ", #{any(java.lang.String)})" : ")"))
.javaParser(JavaParser.fromJavaVersion().classpathFromResources(executionContext, "junit-jupiter-api-5.9", "junit-4.13"))
.javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "junit-jupiter-api-5.9", "junit-4.13"))
.staticImports("org.junit.jupiter.api.Assertions.assertInstanceOf")
.build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ public TreeVisitor<?, ExecutionContext> getVisitor() {
final MethodMatcher methodMatcher = new MethodMatcher(containerClass + " <constructor>()");
return Preconditions.check(new UsesMethod<>(methodMatcher), new JavaIsoVisitor<ExecutionContext>() {
@Override
public J.NewClass visitNewClass(J.NewClass newClass, ExecutionContext executionContext) {
J.NewClass nc = super.visitNewClass(newClass, executionContext);
public J.NewClass visitNewClass(J.NewClass newClass, ExecutionContext ctx) {
J.NewClass nc = super.visitNewClass(newClass, ctx);
if (methodMatcher.matches(newClass)) {
return nc.withArguments(Arrays.asList(getConstructorArgument(newClass)));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ class Strings {
void stringIsEmptyExample() {
rewriteRun(
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ public void defaults(RecipeSpec spec) {
void assertThatBoolean() {
rewriteRun(
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ public void defaults(RecipeSpec spec) {
void isMatcher() {
rewriteRun(
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
Expand Down Expand Up @@ -73,7 +74,8 @@ void testEquals() {
void isMatcherWithReason() {
rewriteRun(
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
Expand Down Expand Up @@ -109,7 +111,8 @@ void testEquals() {
void isMatcherWithMatcher() {
rewriteRun(
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
Expand All @@ -130,7 +133,8 @@ void test() {
void isObjectArray() {
rewriteRun(
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
Expand Down Expand Up @@ -163,7 +167,8 @@ void testEquals() {
void isPrimitiveArray() {
rewriteRun(
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ void notMatcher() {
rewriteRun(
spec -> spec.recipe(new HamcrestMatcherToAssertJ("not", "isNotEqualTo")),
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.not;
Expand All @@ -65,7 +66,8 @@ void isMatcher() {
rewriteRun(
spec -> spec.recipe(new HamcrestMatcherToAssertJ("is", "isEqualTo")),
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
Expand All @@ -87,7 +89,8 @@ void anyOfVarargsMatcher() {
rewriteRun(
spec -> spec.recipe(new HamcrestMatcherToAssertJ("is", "isEqualTo")),
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.anyOf;
Expand All @@ -109,7 +112,8 @@ void anyOfIterableMatcher() {
rewriteRun(
spec -> spec.recipe(new HamcrestMatcherToAssertJ("is", "isEqualTo")),
//language=java
java("""
java(
"""
import java.util.List;
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
Expand All @@ -135,7 +139,8 @@ void isEmpty() {
rewriteRun(
spec -> spec.recipe(new HamcrestMatcherToAssertJ("isEmptyString", "isEmpty")),
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down Expand Up @@ -211,7 +216,8 @@ void equalToString() {
rewriteRun(
spec -> spec.recipe(new HamcrestMatcherToAssertJ("equalTo", "isEqualTo")),
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down Expand Up @@ -248,7 +254,8 @@ void equalToStringLiteral() {
rewriteRun(
spec -> spec.recipe(new HamcrestMatcherToAssertJ("equalTo", "isEqualTo")),
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down Expand Up @@ -283,7 +290,8 @@ void equalToObject() {
rewriteRun(
spec -> spec.recipe(new HamcrestMatcherToAssertJ("equalTo", "isEqualTo")),
//language=java
java("""
java(
"""
class Biscuit {
String name;
Biscuit(String name) {
Expand All @@ -292,7 +300,8 @@ class Biscuit {
}
"""),
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down Expand Up @@ -329,7 +338,8 @@ void lessThanNumber() {
rewriteRun(
spec -> spec.recipe(new HamcrestMatcherToAssertJ("lessThan", "isLessThan")),
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down Expand Up @@ -367,7 +377,8 @@ void containsInAnyOrderWithArray() {
rewriteRun(
spec -> spec.recipe(new HamcrestMatcherToAssertJ("containsInAnyOrder", "containsExactlyInAnyOrder")),
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
Expand Down Expand Up @@ -409,7 +420,8 @@ void closeToTest() {
rewriteRun(
spec -> spec.recipe(new HamcrestMatcherToAssertJ("closeTo", "isCloseTo")),
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down Expand Up @@ -443,7 +455,8 @@ void closeToWorksWithBigDecimal() {
rewriteRun(
spec -> spec.recipe(new HamcrestMatcherToAssertJ("closeTo", "isCloseTo")),
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
Expand Down Expand Up @@ -488,7 +501,8 @@ void reasonAsLiteral() {
rewriteRun(
spec -> spec.recipe(new HamcrestMatcherToAssertJ("equalTo", "isEqualTo")),
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down Expand Up @@ -525,7 +539,8 @@ void reasonAsMethodCall() {
rewriteRun(
spec -> spec.recipe(new HamcrestMatcherToAssertJ("equalTo", "isEqualTo")),
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ void notMatcher() {
rewriteRun(
spec -> spec.recipe(new HamcrestNotMatcherToAssertJ("equalTo", "isNotEqualTo")),
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down Expand Up @@ -77,7 +78,8 @@ void notMatcherWithReason() {
rewriteRun(
spec -> spec.recipe(new HamcrestNotMatcherToAssertJ("nullValue", "isNotNull")),
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ public void defaults(RecipeSpec spec) {
void isEqualTo() {
//language=java
rewriteRun(
java("""
java(
"""
class Biscuit {
String name;
Biscuit(String name) {
Expand All @@ -74,7 +75,8 @@ int getHazelnutCount() {
}
}
"""),
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down Expand Up @@ -113,7 +115,8 @@ public void biscuits() {
void allOfStringMatchersAndConvert() {
rewriteRun(
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down Expand Up @@ -154,7 +157,8 @@ void test() {
void convertAnyOfMatchersAfterSatisfiesAnyOfConversion() {
rewriteRun(
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down Expand Up @@ -322,7 +326,8 @@ void test() {
String before = template.formatted(importsBefore, "assertThat(%s, %s(%s));".formatted(actual, hamcrestMatcher, matcherArgs));
String after = template.formatted(importsAfter, "assertThat(%s).%s(%s);".formatted(actual, assertJAssertion, matcherArgs));
rewriteRun(
java("""
java(
"""
class Biscuit {
String name;
Biscuit(String name) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ public void defaults(RecipeSpec spec) {
void isMatcher() {
rewriteRun(
//language=java
java("""
java(
"""
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -527,7 +527,8 @@ public void testI2(String path) {
void parameterizedTestWithEmptyConstructor() {
rewriteRun(
//language=java
java("""
java(
"""
import java.util.Arrays;
import java.util.Collection;
import org.junit.runners.Parameterized;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ public void defaults(RecipeSpec spec) {
void replaceAnyStringWithNullableStringClass() {
//language=java
rewriteRun(
java("""
java(
"""
class Example {
String greet(String name) {
return "Hello " + name;
Expand Down Expand Up @@ -78,7 +79,8 @@ void test() {
void doNotReplaceAnyInt() {
//language=java
rewriteRun(
java("""
java(
"""
class Example {
String greet(int value) {
return "Hello " + value;
Expand Down
Loading

0 comments on commit 89e1355

Please sign in to comment.