Skip to content

Commit 6a831c2

Browse files
committed
Treatment of line breaks in assert statement migration
1 parent a0b46cf commit 6a831c2

File tree

2 files changed

+39
-7
lines changed

2 files changed

+39
-7
lines changed

src/main/java/org/openrewrite/java/testing/junit5/AssertToAssertions.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,8 @@
2626
import org.openrewrite.java.tree.JavaType;
2727
import org.openrewrite.java.tree.TypeUtils;
2828

29+
import java.util.ArrayList;
2930
import java.util.List;
30-
import java.util.stream.Collectors;
31-
import java.util.stream.Stream;
3231

3332
public class AssertToAssertions extends Recipe {
3433

@@ -79,13 +78,18 @@ public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, Execu
7978
if (isStringArgument(firstArg)) {
8079
// Move the first arg to be the last argument
8180

82-
List<Expression> newArgs = Stream.concat(
83-
args.stream().skip(1),
84-
Stream.of(firstArg)
85-
).collect(Collectors.toList());
81+
List<Expression> newArgs = new ArrayList<>(args.size());
82+
for (int i = 1; i < args.size(); i++) {
83+
if(i == 1) {
84+
newArgs.add(args.get(i).withPrefix(firstArg.getPrefix()));
85+
} else {
86+
newArgs.add(args.get(i));
87+
}
88+
}
89+
newArgs.add(firstArg.withPrefix(args.get(args.size() - 1).getPrefix()));
90+
8691
m = m.withArguments(newArgs);
8792
}
88-
m = maybeAutoFormat(method, m, ctx, getCursor().dropParentUntil(J.class::isInstance));
8993

9094
return m;
9195
}

src/test/kotlin/org/openrewrite/java/testing/junit5/AssertToAssertionsTest.kt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,34 @@ class AssertToAssertionsTest : JavaRecipeTest {
106106
"""
107107
)
108108

109+
@Test
110+
fun lineBreakInArguments() = assertChanged(
111+
before = """
112+
import org.junit.Test;
113+
import static org.junit.Assert.assertFalse;
114+
115+
public class A {
116+
@Test
117+
public void test() {
118+
assertFalse("boom",
119+
true);
120+
}
121+
}
122+
""",
123+
after = """
124+
import org.junit.Test;
125+
import static org.junit.jupiter.api.Assertions.assertFalse;
126+
127+
public class A {
128+
@Test
129+
public void test() {
130+
assertFalse(true,
131+
"boom");
132+
}
133+
}
134+
"""
135+
)
136+
109137
@Test
110138
fun assertWithoutMessage() = assertChanged(
111139
before = """

0 commit comments

Comments
 (0)