Skip to content

Commit ea72478

Browse files
authored
Fix ClassCastException in RemoveTimesZeroAndOne (#969)
* Fix ClassCastException in RemoveTimesZeroAndOne when verify arg is not a method invocation (#968) * Add @issue annotation to retainVerificationModeIdentifier test
1 parent 58bcc12 commit ea72478

2 files changed

Lines changed: 25 additions & 1 deletion

File tree

src/main/java/org/openrewrite/java/testing/mockito/RemoveTimesZeroAndOne.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ public TreeVisitor<?, ExecutionContext> getVisitor() {
5959
.build()
6060
.apply(getCursor(), mi.getCoordinates().replace());
6161
}
62-
if (verifyMatcher.matches(mi) && mi.getArguments().size() == 2) {
62+
if (verifyMatcher.matches(mi) && mi.getArguments().size() == 2 &&
63+
mi.getArguments().get(1) instanceof J.MethodInvocation) {
6364
J.MethodInvocation times = (J.MethodInvocation) mi.getArguments().get(1);
6465
if (timesMatcher.matches(times) && J.Literal.isLiteralValue(times.getArguments().get(0), 1)) {
6566
maybeRemoveImport("org.mockito.Mockito.times");

src/test/java/org/openrewrite/java/testing/mockito/RemoveTimesZeroAndOneTest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import org.junit.jupiter.api.Test;
1919
import org.openrewrite.DocumentExample;
20+
import org.openrewrite.Issue;
2021
import org.openrewrite.InMemoryExecutionContext;
2122
import org.openrewrite.java.JavaParser;
2223
import org.openrewrite.test.RecipeSpec;
@@ -95,6 +96,28 @@ void test(Object myObject) {
9596
);
9697
}
9798

99+
@Test
100+
@Issue("https://github.com/openrewrite/rewrite-testing-frameworks/issues/968")
101+
void retainVerificationModeIdentifier() {
102+
rewriteRun(
103+
//language=Java
104+
java(
105+
"""
106+
import static org.mockito.Mockito.times;
107+
import static org.mockito.Mockito.verify;
108+
import org.mockito.verification.VerificationMode;
109+
110+
class MyTest {
111+
void test(Object myObject, VerificationMode verificationMode) {
112+
myObject.wait();
113+
verify(myObject, verificationMode).wait();
114+
}
115+
}
116+
"""
117+
)
118+
);
119+
}
120+
98121
@Test
99122
void retainTimesTwo() {
100123
rewriteRun(

0 commit comments

Comments
 (0)