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 }