1 package org.codehaus.plexus.compiler.eclipse;
2
3 import java.util.List;
4 import java.util.stream.Stream;
5
6 import org.junit.jupiter.params.ParameterizedTest;
7 import org.junit.jupiter.params.provider.Arguments;
8 import org.junit.jupiter.params.provider.MethodSource;
9
10 import static java.util.Arrays.asList;
11 import static org.junit.jupiter.api.Assertions.assertEquals;
12
13 class EclipseJavaCompilerTest {
14 @ParameterizedTest
15 @MethodSource("sources")
16 void testReorderedSources(List<String> expected, List<String> inputSources) {
17 List<String> resorted = EclipseJavaCompiler.resortSourcesToPutModuleInfoFirst(inputSources);
18
19 assertEquals(expected, resorted);
20 }
21
22 static Stream<Arguments> sources() {
23 List<String> expectedOrder = asList("module-info.java", "plexus/A.java", "plexus/B.java", "eclipse/A.java");
24
25 List<String> moduleInfoAlreadyFirst =
26 asList("module-info.java", "plexus/A.java", "plexus/B.java", "eclipse/A.java");
27
28 List<String> moduleInfoSomewhereInTheMiddle =
29 asList("plexus/A.java", "module-info.java", "plexus/B.java", "eclipse/A.java");
30
31 List<String> moduleInfoAsLast = asList("plexus/A.java", "plexus/B.java", "eclipse/A.java", "module-info.java");
32
33 return Stream.of(
34 Arguments.arguments(expectedOrder, moduleInfoAlreadyFirst),
35 Arguments.arguments(expectedOrder, moduleInfoSomewhereInTheMiddle),
36 Arguments.arguments(expectedOrder, moduleInfoAsLast));
37 }
38 }