Skip to content

Commit b848880

Browse files
committed
Improve parsing of test classes with whitespace in the package and class name definition
1 parent 792cd7c commit b848880

File tree

3 files changed

+39
-2
lines changed

3 files changed

+39
-2
lines changed

src/main/java/de/donnerbart/split/TestSplit.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626

2727
public class TestSplit {
2828

29-
private static final @NotNull Pattern PACKAGE_PATTERN = Pattern.compile("package (.*);");
30-
private static final @NotNull Pattern CLASS_NAME_PATTERN = Pattern.compile("class (\\w+) ");
29+
private static final @NotNull Pattern PACKAGE_PATTERN = Pattern.compile("package\\s+([\\S.]+?)\\s*;");
30+
private static final @NotNull Pattern CLASS_NAME_PATTERN = Pattern.compile("class\\s+(\\S+?)\\s+");
3131

3232
private static final @NotNull Logger LOG = LoggerFactory.getLogger(TestSplit.class);
3333

src/test/java/de/donnerbart/split/TestSplitTest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,4 +267,27 @@ void run_noClassName() throws Exception {
267267
assertThat(systemOut.getLinesNormalized()).isEmpty();
268268
assertThat(exitCode).hasValue(1);
269269
}
270+
271+
@Test
272+
void run_whitespaceClassDefinition() throws Exception {
273+
final var projectFolder =
274+
tmp.resolve("multiline-class-definition-project").resolve("src").resolve("main").resolve("java");
275+
copyResourceToTarget(projectFolder, "tests/WhitespaceClassDefinitionTest.java",
276+
"WhitespaceClassDefinitionTest.java",
277+
PERMISSIONS);
278+
279+
final var testSplit = new TestSplit(0,
280+
1,
281+
"**/multiline-class-definition-project/**/*Test.java",
282+
null,
283+
null,
284+
projectFolder,
285+
true,
286+
exitCode::set);
287+
testSplit.run();
288+
289+
assertThat(systemOut.getLines()).singleElement()
290+
.isEqualTo("de.donnerbart.example.WhitespaceClassDefinitionTest");
291+
assertThat(exitCode).hasNullValue();
292+
}
270293
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
//@formatter:off
2+
package de.donnerbart.example
3+
;
4+
5+
import org.junit.jupiter.api.Test;
6+
7+
class WhitespaceClassDefinitionTest
8+
extends FastTest {
9+
10+
@Test
11+
void testFastMethod() {
12+
}
13+
}
14+
//@formatter:on

0 commit comments

Comments
 (0)