Skip to content

Commit 5cebb2e

Browse files
Fix another bug in LargeSourceSetCheckingExpectedCycles (#3943)
There appear to be quite a few more recipes which make additional invisible changes in the second cycle. As a quick fix this commit adds `expectedCyclesThatMakeChanges(2)` to these tests so they pass.
1 parent fe15bdb commit 5cebb2e

File tree

19 files changed

+75
-48
lines changed

19 files changed

+75
-48
lines changed

rewrite-core/src/test/java/org/openrewrite/config/DeclarativeRecipeTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ void maxCycles() {
100100
text("1", "1+1")
101101
);
102102
rewriteRun(
103-
spec -> spec.recipe(new RepeatedFindAndReplace(".+", "$0+1", 2)),
103+
spec -> spec.recipe(new RepeatedFindAndReplace(".+", "$0+1", 2)).expectedCyclesThatMakeChanges(2),
104104
text("1", "1+1+1")
105105
);
106106
}
@@ -124,7 +124,7 @@ void maxCyclesNested() {
124124
)
125125
);
126126
rewriteRun(
127-
spec -> spec.recipe(root).cycles(10).expectedCyclesThatMakeChanges(2),
127+
spec -> spec.recipe(root).cycles(10).cycles(3).expectedCyclesThatMakeChanges(3),
128128
text("1", "1+1+1")
129129
);
130130
assertThat(cycleCount).hasValue(3);

rewrite-gradle/src/test/java/org/openrewrite/gradle/UpdateGradleWrapperTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,7 @@ void skipWorkIfUpdatedEarlier() {
512512
void preferExistingDistributionSource() {
513513
rewriteRun(
514514
spec -> spec.recipe(new UpdateGradleWrapper("8.0.x", null, null, null))
515+
.expectedCyclesThatMakeChanges(2)
515516
.allSources(source -> source.markers(new BuildTool(Tree.randomId(), BuildTool.Type.Gradle, "7.4"))),
516517
properties(
517518
"""
@@ -549,6 +550,7 @@ void preferExistingDistributionSource() {
549550
void customDistributionUri() {
550551
rewriteRun(
551552
spec -> spec.recipe(new UpdateGradleWrapper("8.0.x", null, null, "https://company.com/repo/gradle-${version}-${distribution}.zip"))
553+
.expectedCyclesThatMakeChanges(2)
552554
.allSources(source -> source.markers(new BuildTool(Tree.randomId(), BuildTool.Type.Gradle, "7.4"))),
553555
properties(
554556
"""

rewrite-java-test/src/test/java/org/openrewrite/java/AddOrUpdateAnnotationAttributeTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,8 @@ void foo() {
268268

269269
@Test
270270
void implicitValueToExplicitValue() {
271-
rewriteRun(spec -> spec.recipe(new AddOrUpdateAnnotationAttribute("org.junit.Test", "other", "1", null)),
271+
rewriteRun(spec -> spec.recipe(new AddOrUpdateAnnotationAttribute("org.junit.Test", "other", "1", null))
272+
.expectedCyclesThatMakeChanges(2),
272273
java(
273274
"""
274275
package org.junit;

rewrite-java-test/src/test/java/org/openrewrite/java/JavaTemplateAnnotationTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ class JavaTemplateAnnotationTest implements RewriteTest {
3535
@Test
3636
void replaceAnnotation() {
3737
rewriteRun(
38-
spec -> spec.recipe(toRecipe(() -> new JavaVisitor<>() {
38+
spec -> spec.expectedCyclesThatMakeChanges(2)
39+
.recipe(toRecipe(() -> new JavaVisitor<>() {
3940
@Override
4041
public J visitAnnotation(J.Annotation annotation, ExecutionContext executionContext) {
4142
return JavaTemplate.apply("@Deprecated(since = \"#{}\", forRemoval = true)",

rewrite-java-test/src/test/java/org/openrewrite/java/JavaTemplateContextFreeTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public J visitVariableDeclarations(J.VariableDeclarations vd, ExecutionContext c
7474
}
7575
return super.visitVariableDeclarations(vd, ctx);
7676
}
77-
})),
77+
}).withMaxCycles(1)),
7878
java(
7979
"""
8080
class Test {

rewrite-java-test/src/test/java/org/openrewrite/java/JavaTemplateTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ void m(Collection<T> o) {
464464
@Test
465465
void templatingWhileLoopCondition() {
466466
rewriteRun(
467-
spec -> spec.recipe(toRecipe(() -> new JavaVisitor<>() {
467+
spec -> spec.expectedCyclesThatMakeChanges(2).recipe(toRecipe(() -> new JavaVisitor<>() {
468468
@Override
469469
public J visitBinary(J.Binary binary, ExecutionContext p) {
470470
if (binary.getLeft() instanceof J.MethodInvocation) {
@@ -560,7 +560,7 @@ public J visitUnary(J.Unary unary, ExecutionContext p) {
560560
unary.getExpression()
561561
);
562562
}
563-
})),
563+
}).withMaxCycles(1)),
564564
java(
565565
"""
566566
class Test {

rewrite-java-test/src/test/java/org/openrewrite/java/JavaVisitorTest.java

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -33,29 +33,31 @@ class JavaVisitorTest implements RewriteTest {
3333
@Test
3434
void javaVisitorHandlesPaddedWithNullElem() {
3535
rewriteRun(
36-
spec -> spec.recipes(
37-
toRecipe(() -> new JavaIsoVisitor<>() {
38-
@Override
39-
public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, ExecutionContext p) {
40-
var mi = super.visitMethodInvocation(method, p);
41-
if ("removeMethod".equals(mi.getSimpleName())) {
42-
//noinspection ConstantConditions
43-
return null;
44-
}
45-
return mi;
46-
}
47-
}),
48-
toRecipe(() -> new JavaIsoVisitor<>() {
49-
@Override
50-
public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration method, ExecutionContext p) {
51-
if (method.getSimpleName().equals("allTheThings")) {
52-
return JavaTemplate.builder("Exception").contextSensitive().build()
53-
.apply(getCursor(), method.getCoordinates().replaceThrows());
54-
}
55-
return method;
56-
}
57-
})
58-
),
36+
spec -> spec
37+
.expectedCyclesThatMakeChanges(2)
38+
.recipes(
39+
toRecipe(() -> new JavaIsoVisitor<>() {
40+
@Override
41+
public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, ExecutionContext p) {
42+
var mi = super.visitMethodInvocation(method, p);
43+
if ("removeMethod".equals(mi.getSimpleName())) {
44+
//noinspection ConstantConditions
45+
return null;
46+
}
47+
return mi;
48+
}
49+
}),
50+
toRecipe(() -> new JavaIsoVisitor<>() {
51+
@Override
52+
public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration method, ExecutionContext p) {
53+
if (method.getSimpleName().equals("allTheThings")) {
54+
return JavaTemplate.builder("Exception").contextSensitive().build()
55+
.apply(getCursor(), method.getCoordinates().replaceThrows());
56+
}
57+
return method;
58+
}
59+
})
60+
),
5961
java(
6062
"""
6163
class A {

rewrite-java-test/src/test/java/org/openrewrite/java/RemoveUnusedImportsTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1142,6 +1142,7 @@ void f(A classA) {
11421142
@Test
11431143
void doesNotRemoveWildCardImport() {
11441144
rewriteRun(
1145+
spec -> spec.expectedCyclesThatMakeChanges(2),
11451146
java(
11461147
"""
11471148
package com.Source.mine;
@@ -1403,6 +1404,7 @@ class A {
14031404
@Test
14041405
void removeWildcardImportWithDirectImport() {
14051406
rewriteRun(
1407+
spec -> spec.expectedCyclesThatMakeChanges(2),
14061408
java(
14071409
"""
14081410
import java.util.*;
@@ -1469,6 +1471,7 @@ class A {
14691471
@Test
14701472
void removeMultipleImportsWhileUnfoldingWildcard() {
14711473
rewriteRun(
1474+
spec -> spec.expectedCyclesThatMakeChanges(2),
14721475
java(
14731476
"""
14741477
import java.util.Set;

rewrite-java-test/src/test/java/org/openrewrite/java/format/MinimumViableSpacingTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ public Space visitSpace(Space space, Space.Location loc, ExecutionContext ctx) {
5050
@Test
5151
void method() {
5252
rewriteRun(
53+
spec -> spec.expectedCyclesThatMakeChanges(2),
5354
java(
5455
"""
5556
class A {
@@ -67,6 +68,7 @@ class A{public <T> void foo(){}}
6768
@Test
6869
void returnExpression() {
6970
rewriteRun(
71+
spec -> spec.expectedCyclesThatMakeChanges(2),
7072
java(
7173
"""
7274
class A {
@@ -85,6 +87,7 @@ class A{public String foo(){return "foo";}}
8587
@Test
8688
void variableDeclarationsInClass() {
8789
rewriteRun(
90+
spec -> spec.expectedCyclesThatMakeChanges(2),
8891
java(
8992
"""
9093
class A {
@@ -105,6 +108,7 @@ class A{int unassigned;int zero=0;final int one=1;public static final int ONE=1;
105108
@Test
106109
void variableDeclarationsInMethod() {
107110
rewriteRun(
111+
spec -> spec.expectedCyclesThatMakeChanges(2),
108112
java(
109113
"""
110114
class A {
@@ -127,6 +131,7 @@ class A{public void foo(int paramA,final int paramB){int unassigned;int a=1;int
127131
@Test
128132
void variableDeclarationsInForLoops() {
129133
rewriteRun(
134+
spec -> spec.expectedCyclesThatMakeChanges(2),
130135
java(
131136
"""
132137
class Test {
@@ -153,6 +158,7 @@ class Test{void foo(final int[] arr){for(int n=0,x=0;n<100;n++,x++){}for(int i:a
153158
@Test
154159
void spacesBetweenModifiers() {
155160
rewriteRun(
161+
spec -> spec.expectedCyclesThatMakeChanges(2),
156162
java(
157163
"""
158164
public final class A {

rewrite-java-test/src/test/java/org/openrewrite/java/recipes/SourceSpecTextBlockIndentationTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public void defaults(RecipeSpec spec) {
3535
@Test
3636
void minimalIndentation() {
3737
rewriteRun(
38+
spec -> spec.expectedCyclesThatMakeChanges(2),
3839
java(
3940
"""
4041
import org.openrewrite.test.RewriteTest;
@@ -87,6 +88,7 @@ void test() {
8788
@Test
8889
void startsOnNewline() {
8990
rewriteRun(
91+
spec -> spec.expectedCyclesThatMakeChanges(2),
9092
java(
9193
"""
9294
import org.openrewrite.test.RewriteTest;

0 commit comments

Comments
 (0)