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.Assertions;
33 import org.junit.jupiter.api.BeforeEach;
34 import org.junit.jupiter.api.Test;
35
36 import static org.hamcrest.MatcherAssert.assertThat;
37 import static org.hamcrest.Matchers.contains;
38 import static org.hamcrest.Matchers.is;
39
40 public class EclipseCompilerConfigurationTest {
41 private static final String PROPERTIES_FILE_NAME =
42 "src/test/resources".replace("/", File.separator) + File.separator
43 + EclipseCompilerConfigurationTest.class.getName().replace(".", File.separator)
44 + "-test.properties";
45
46 private CompilerConfiguration configuration;
47
48 @BeforeEach
49 protected void setUp() {
50 configuration = new CompilerConfiguration();
51 }
52
53 @Test
54 public void testProcessCustomArgumentsWithMultipleAddExports() {
55 configuration.addCompilerCustomArgument("--add-exports", "FROM-MOD/package1=OTHER-MOD");
56 configuration.addCompilerCustomArgument("--add-exports", "FROM-MOD/package2=OTHER-MOD");
57 List<String> args = new ArrayList<>();
58 EclipseJavaCompiler.processCustomArguments(configuration, args);
59 assertThat(args.size(), is(4));
60 assertThat(
61 args,
62 contains(
63 "--add-exports",
64 "FROM-MOD/package1=OTHER-MOD",
65 "--add-exports",
66 "FROM-MOD/package2=OTHER-MOD"));
67
68
69
70
71 }
72
73 @Test
74 public void testProcessCustomArgumentsWithProceedOnError() {
75 configuration.addCompilerCustomArgument("-proceedOnError", null);
76 List<String> args = new ArrayList<>();
77 EclipseJavaCompiler.processCustomArguments(configuration, args);
78 assertThat(args.size(), is(1));
79 assertThat(args, contains("-proceedOnError:Fatal"));
80 }
81
82 @Test
83 public void testProcessCustomArgumentsWithErrorsAsWarnings() {
84 configuration.addCompilerCustomArgument("errorsAsWarnings", null);
85 List<String> args = new ArrayList<>();
86 final boolean errorsAsWarnings = EclipseJavaCompiler.processCustomArguments(configuration, args);
87 assertThat(errorsAsWarnings, is(true));
88 }
89
90 @Test
91 public void testProcessCustomArgumentsWithErrorsAsWarningsAndMinus() {
92 configuration.addCompilerCustomArgument("-errorsAsWarnings", null);
93 List<String> args = new ArrayList<>();
94 final boolean errorsAsWarnings = EclipseJavaCompiler.processCustomArguments(configuration, args);
95 assertThat(errorsAsWarnings, is(true));
96 }
97
98 @Test
99 public void testProcessCustomArgumentsWithPropertiesAndNonExistingFile() {
100 configuration.addCompilerCustomArgument("-properties", "fooBar.txt");
101 IllegalArgumentException expected = Assertions.assertThrows(
102 IllegalArgumentException.class,
103 () -> EclipseJavaCompiler.processCustomArguments(configuration, Collections.emptyList()));
104 assertThat(expected.getMessage(), is("Properties file specified by -properties fooBar.txt does not exist"));
105 }
106
107 @Test
108 public void testProcessCustomArgumentsWithPropertiesAndValidFile() {
109 configuration.addCompilerCustomArgument("-properties", PROPERTIES_FILE_NAME);
110 List<String> args = new ArrayList<>();
111 EclipseJavaCompiler.processCustomArguments(configuration, args);
112 assertThat(args.size(), is(2));
113 assertThat(args, contains("-properties", PROPERTIES_FILE_NAME));
114 }
115 }