View Javadoc
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  }