1 package org.codehaus.plexus.compiler.eclipse;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 import java.io.File;
27 import java.util.ArrayList;
28 import java.util.Collections;
29 import java.util.List;
30
31 import org.codehaus.plexus.compiler.CompilerConfiguration;
32 import org.junit.jupiter.api.BeforeEach;
33 import org.junit.jupiter.api.Test;
34
35 import static org.junit.jupiter.api.Assertions.assertEquals;
36 import static org.junit.jupiter.api.Assertions.assertThrows;
37 import static org.junit.jupiter.api.Assertions.assertTrue;
38
39 public class EclipseCompilerConfigurationTest {
40 private static final String PROPERTIES_FILE_NAME =
41 "src/test/resources".replace("/", File.separator) + File.separator
42 + EclipseCompilerConfigurationTest.class.getName().replace(".", File.separator)
43 + "-test.properties";
44
45 private CompilerConfiguration configuration;
46
47 @BeforeEach
48 protected void setUp() {
49 configuration = new CompilerConfiguration();
50 }
51
52 @Test
53 public void testProcessCustomArgumentsWithMultipleAddExports() {
54 configuration.addCompilerCustomArgument("--add-exports", "FROM-MOD/package1=OTHER-MOD");
55 configuration.addCompilerCustomArgument("--add-exports", "FROM-MOD/package2=OTHER-MOD");
56 List<String> args = new ArrayList<>();
57 EclipseJavaCompiler.processCustomArguments(configuration, args);
58 assertEquals(4, args.size());
59 assertEquals("--add-exports", args.get(0));
60 assertEquals("FROM-MOD/package1=OTHER-MOD", args.get(1));
61 assertEquals("--add-exports", args.get(2));
62 assertEquals("FROM-MOD/package2=OTHER-MOD", args.get(3));
63
64
65
66
67 }
68
69 @Test
70 public void testProcessCustomArgumentsWithProceedOnError() {
71 configuration.addCompilerCustomArgument("-proceedOnError", null);
72 List<String> args = new ArrayList<>();
73 EclipseJavaCompiler.processCustomArguments(configuration, args);
74 assertEquals(1, args.size());
75 assertEquals("-proceedOnError:Fatal", args.get(0));
76 }
77
78 @Test
79 public void testProcessCustomArgumentsWithErrorsAsWarnings() {
80 configuration.addCompilerCustomArgument("errorsAsWarnings", null);
81 List<String> args = new ArrayList<>();
82 final boolean errorsAsWarnings = EclipseJavaCompiler.processCustomArguments(configuration, args);
83 assertTrue(errorsAsWarnings);
84 }
85
86 @Test
87 public void testProcessCustomArgumentsWithErrorsAsWarningsAndMinus() {
88 configuration.addCompilerCustomArgument("-errorsAsWarnings", null);
89 List<String> args = new ArrayList<>();
90 final boolean errorsAsWarnings = EclipseJavaCompiler.processCustomArguments(configuration, args);
91 assertTrue(errorsAsWarnings);
92 }
93
94 @Test
95 public void testProcessCustomArgumentsWithPropertiesAndNonExistingFile() {
96 configuration.addCompilerCustomArgument("-properties", "fooBar.txt");
97 IllegalArgumentException expected = assertThrows(
98 IllegalArgumentException.class,
99 () -> EclipseJavaCompiler.processCustomArguments(configuration, Collections.emptyList()));
100 assertEquals("Properties file specified by -properties fooBar.txt does not exist", expected.getMessage());
101 }
102
103 @Test
104 public void testProcessCustomArgumentsWithPropertiesAndValidFile() {
105 configuration.addCompilerCustomArgument("-properties", PROPERTIES_FILE_NAME);
106 List<String> args = new ArrayList<>();
107 EclipseJavaCompiler.processCustomArguments(configuration, args);
108 assertEquals(2, args.size());
109 assertEquals("-properties", args.get(0));
110 assertEquals(PROPERTIES_FILE_NAME, args.get(1));
111 }
112 }