• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements.  See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership.  The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License.  You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied.  See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  */
19 
20 package org.apache.commons.lang3;
21 
22 import static org.apache.commons.lang3.JavaVersion.JAVA_10;
23 import static org.apache.commons.lang3.JavaVersion.JAVA_11;
24 import static org.apache.commons.lang3.JavaVersion.JAVA_12;
25 import static org.apache.commons.lang3.JavaVersion.JAVA_13;
26 import static org.apache.commons.lang3.JavaVersion.JAVA_1_1;
27 import static org.apache.commons.lang3.JavaVersion.JAVA_1_2;
28 import static org.apache.commons.lang3.JavaVersion.JAVA_1_3;
29 import static org.apache.commons.lang3.JavaVersion.JAVA_1_4;
30 import static org.apache.commons.lang3.JavaVersion.JAVA_1_5;
31 import static org.apache.commons.lang3.JavaVersion.JAVA_1_6;
32 import static org.apache.commons.lang3.JavaVersion.JAVA_1_7;
33 import static org.apache.commons.lang3.JavaVersion.JAVA_1_8;
34 import static org.apache.commons.lang3.JavaVersion.JAVA_9;
35 import static org.junit.jupiter.api.Assertions.assertEquals;
36 import static org.junit.jupiter.api.Assertions.assertFalse;
37 import static org.junit.jupiter.api.Assertions.assertNotNull;
38 import static org.junit.jupiter.api.Assertions.assertNull;
39 import static org.junit.jupiter.api.Assertions.assertTrue;
40 
41 import java.io.File;
42 import java.lang.reflect.Constructor;
43 import java.lang.reflect.Modifier;
44 import java.util.Locale;
45 
46 import org.junit.jupiter.api.Test;
47 
48 /**
49  * Unit tests {@link org.apache.commons.lang3.SystemUtils}.
50  *
51  * Only limited testing can be performed.
52  */
53 public class SystemUtilsTest extends AbstractLangTest {
54 
55     @Test
56     @SuppressWarnings("deprecation")
test_IS_JAVA()57     public void test_IS_JAVA() {
58         final String javaVersion = SystemUtils.JAVA_VERSION;
59         if (javaVersion == null) {
60             assertFalse(SystemUtils.IS_JAVA_1_1);
61             assertFalse(SystemUtils.IS_JAVA_1_2);
62             assertFalse(SystemUtils.IS_JAVA_1_3);
63             assertFalse(SystemUtils.IS_JAVA_1_4);
64             assertFalse(SystemUtils.IS_JAVA_1_5);
65             assertFalse(SystemUtils.IS_JAVA_1_6);
66             assertFalse(SystemUtils.IS_JAVA_1_7);
67             assertFalse(SystemUtils.IS_JAVA_1_8);
68             assertFalse(SystemUtils.IS_JAVA_1_9);
69             assertFalse(SystemUtils.IS_JAVA_9);
70             assertFalse(SystemUtils.IS_JAVA_10);
71             assertFalse(SystemUtils.IS_JAVA_11);
72             assertFalse(SystemUtils.IS_JAVA_12);
73             assertFalse(SystemUtils.IS_JAVA_13);
74             assertFalse(SystemUtils.IS_JAVA_14);
75             assertFalse(SystemUtils.IS_JAVA_15);
76             assertFalse(SystemUtils.IS_JAVA_16);
77             assertFalse(SystemUtils.IS_JAVA_17);
78             assertFalse(SystemUtils.IS_JAVA_18);
79         } else if (javaVersion.startsWith("1.8")) {
80             assertFalse(SystemUtils.IS_JAVA_1_1);
81             assertFalse(SystemUtils.IS_JAVA_1_2);
82             assertFalse(SystemUtils.IS_JAVA_1_3);
83             assertFalse(SystemUtils.IS_JAVA_1_4);
84             assertFalse(SystemUtils.IS_JAVA_1_5);
85             assertFalse(SystemUtils.IS_JAVA_1_6);
86             assertFalse(SystemUtils.IS_JAVA_1_7);
87             assertTrue(SystemUtils.IS_JAVA_1_8);
88             assertFalse(SystemUtils.IS_JAVA_1_9);
89             assertFalse(SystemUtils.IS_JAVA_9);
90             assertFalse(SystemUtils.IS_JAVA_10);
91             assertFalse(SystemUtils.IS_JAVA_11);
92             assertFalse(SystemUtils.IS_JAVA_12);
93             assertFalse(SystemUtils.IS_JAVA_13);
94             assertFalse(SystemUtils.IS_JAVA_14);
95             assertFalse(SystemUtils.IS_JAVA_15);
96             assertFalse(SystemUtils.IS_JAVA_16);
97             assertFalse(SystemUtils.IS_JAVA_17);
98             assertFalse(SystemUtils.IS_JAVA_18);
99         } else if (javaVersion.startsWith("9")) {
100             assertFalse(SystemUtils.IS_JAVA_1_1);
101             assertFalse(SystemUtils.IS_JAVA_1_2);
102             assertFalse(SystemUtils.IS_JAVA_1_3);
103             assertFalse(SystemUtils.IS_JAVA_1_4);
104             assertFalse(SystemUtils.IS_JAVA_1_5);
105             assertFalse(SystemUtils.IS_JAVA_1_6);
106             assertFalse(SystemUtils.IS_JAVA_1_7);
107             assertFalse(SystemUtils.IS_JAVA_1_8);
108             assertTrue(SystemUtils.IS_JAVA_1_9);
109             assertTrue(SystemUtils.IS_JAVA_9);
110             assertFalse(SystemUtils.IS_JAVA_10);
111             assertFalse(SystemUtils.IS_JAVA_11);
112             assertFalse(SystemUtils.IS_JAVA_12);
113             assertFalse(SystemUtils.IS_JAVA_13);
114             assertFalse(SystemUtils.IS_JAVA_14);
115             assertFalse(SystemUtils.IS_JAVA_15);
116             assertFalse(SystemUtils.IS_JAVA_16);
117             assertFalse(SystemUtils.IS_JAVA_17);
118             assertFalse(SystemUtils.IS_JAVA_18);
119         } else if (javaVersion.startsWith("10")) {
120             assertFalse(SystemUtils.IS_JAVA_1_1);
121             assertFalse(SystemUtils.IS_JAVA_1_2);
122             assertFalse(SystemUtils.IS_JAVA_1_3);
123             assertFalse(SystemUtils.IS_JAVA_1_4);
124             assertFalse(SystemUtils.IS_JAVA_1_5);
125             assertFalse(SystemUtils.IS_JAVA_1_6);
126             assertFalse(SystemUtils.IS_JAVA_1_7);
127             assertFalse(SystemUtils.IS_JAVA_1_8);
128             assertFalse(SystemUtils.IS_JAVA_1_9);
129             assertFalse(SystemUtils.IS_JAVA_9);
130             assertTrue(SystemUtils.IS_JAVA_10);
131             assertFalse(SystemUtils.IS_JAVA_11);
132             assertFalse(SystemUtils.IS_JAVA_12);
133             assertFalse(SystemUtils.IS_JAVA_13);
134             assertFalse(SystemUtils.IS_JAVA_14);
135             assertFalse(SystemUtils.IS_JAVA_15);
136             assertFalse(SystemUtils.IS_JAVA_16);
137             assertFalse(SystemUtils.IS_JAVA_17);
138             assertFalse(SystemUtils.IS_JAVA_18);
139         } else if (javaVersion.startsWith("11")) {
140             assertFalse(SystemUtils.IS_JAVA_1_1);
141             assertFalse(SystemUtils.IS_JAVA_1_2);
142             assertFalse(SystemUtils.IS_JAVA_1_3);
143             assertFalse(SystemUtils.IS_JAVA_1_4);
144             assertFalse(SystemUtils.IS_JAVA_1_5);
145             assertFalse(SystemUtils.IS_JAVA_1_6);
146             assertFalse(SystemUtils.IS_JAVA_1_7);
147             assertFalse(SystemUtils.IS_JAVA_1_8);
148             assertFalse(SystemUtils.IS_JAVA_1_9);
149             assertFalse(SystemUtils.IS_JAVA_9);
150             assertFalse(SystemUtils.IS_JAVA_10);
151             assertTrue(SystemUtils.IS_JAVA_11);
152             assertFalse(SystemUtils.IS_JAVA_12);
153             assertFalse(SystemUtils.IS_JAVA_13);
154             assertFalse(SystemUtils.IS_JAVA_14);
155             assertFalse(SystemUtils.IS_JAVA_15);
156             assertFalse(SystemUtils.IS_JAVA_16);
157             assertFalse(SystemUtils.IS_JAVA_17);
158             assertFalse(SystemUtils.IS_JAVA_18);
159         } else if (javaVersion.startsWith("12")) {
160             assertFalse(SystemUtils.IS_JAVA_1_1);
161             assertFalse(SystemUtils.IS_JAVA_1_2);
162             assertFalse(SystemUtils.IS_JAVA_1_3);
163             assertFalse(SystemUtils.IS_JAVA_1_4);
164             assertFalse(SystemUtils.IS_JAVA_1_5);
165             assertFalse(SystemUtils.IS_JAVA_1_6);
166             assertFalse(SystemUtils.IS_JAVA_1_7);
167             assertFalse(SystemUtils.IS_JAVA_1_8);
168             assertFalse(SystemUtils.IS_JAVA_1_9);
169             assertFalse(SystemUtils.IS_JAVA_9);
170             assertFalse(SystemUtils.IS_JAVA_10);
171             assertFalse(SystemUtils.IS_JAVA_11);
172             assertTrue(SystemUtils.IS_JAVA_12);
173             assertFalse(SystemUtils.IS_JAVA_13);
174             assertFalse(SystemUtils.IS_JAVA_14);
175             assertFalse(SystemUtils.IS_JAVA_15);
176             assertFalse(SystemUtils.IS_JAVA_16);
177             assertFalse(SystemUtils.IS_JAVA_17);
178             assertFalse(SystemUtils.IS_JAVA_18);
179         } else if (javaVersion.startsWith("13")) {
180             assertFalse(SystemUtils.IS_JAVA_1_1);
181             assertFalse(SystemUtils.IS_JAVA_1_2);
182             assertFalse(SystemUtils.IS_JAVA_1_3);
183             assertFalse(SystemUtils.IS_JAVA_1_4);
184             assertFalse(SystemUtils.IS_JAVA_1_5);
185             assertFalse(SystemUtils.IS_JAVA_1_6);
186             assertFalse(SystemUtils.IS_JAVA_1_7);
187             assertFalse(SystemUtils.IS_JAVA_1_8);
188             assertFalse(SystemUtils.IS_JAVA_1_9);
189             assertFalse(SystemUtils.IS_JAVA_9);
190             assertFalse(SystemUtils.IS_JAVA_10);
191             assertFalse(SystemUtils.IS_JAVA_11);
192             assertFalse(SystemUtils.IS_JAVA_12);
193             assertTrue(SystemUtils.IS_JAVA_13);
194             assertFalse(SystemUtils.IS_JAVA_14);
195             assertFalse(SystemUtils.IS_JAVA_15);
196             assertFalse(SystemUtils.IS_JAVA_16);
197             assertFalse(SystemUtils.IS_JAVA_17);
198             assertFalse(SystemUtils.IS_JAVA_18);
199         } else if (javaVersion.startsWith("14")) {
200             assertFalse(SystemUtils.IS_JAVA_1_1);
201             assertFalse(SystemUtils.IS_JAVA_1_2);
202             assertFalse(SystemUtils.IS_JAVA_1_3);
203             assertFalse(SystemUtils.IS_JAVA_1_4);
204             assertFalse(SystemUtils.IS_JAVA_1_5);
205             assertFalse(SystemUtils.IS_JAVA_1_6);
206             assertFalse(SystemUtils.IS_JAVA_1_7);
207             assertFalse(SystemUtils.IS_JAVA_1_8);
208             assertFalse(SystemUtils.IS_JAVA_1_9);
209             assertFalse(SystemUtils.IS_JAVA_9);
210             assertFalse(SystemUtils.IS_JAVA_10);
211             assertFalse(SystemUtils.IS_JAVA_11);
212             assertFalse(SystemUtils.IS_JAVA_12);
213             assertFalse(SystemUtils.IS_JAVA_13);
214             assertTrue(SystemUtils.IS_JAVA_14);
215             assertFalse(SystemUtils.IS_JAVA_15);
216             assertFalse(SystemUtils.IS_JAVA_16);
217             assertFalse(SystemUtils.IS_JAVA_17);
218             assertFalse(SystemUtils.IS_JAVA_18);
219         } else if (javaVersion.startsWith("15")) {
220             assertFalse(SystemUtils.IS_JAVA_1_1);
221             assertFalse(SystemUtils.IS_JAVA_1_2);
222             assertFalse(SystemUtils.IS_JAVA_1_3);
223             assertFalse(SystemUtils.IS_JAVA_1_4);
224             assertFalse(SystemUtils.IS_JAVA_1_5);
225             assertFalse(SystemUtils.IS_JAVA_1_6);
226             assertFalse(SystemUtils.IS_JAVA_1_7);
227             assertFalse(SystemUtils.IS_JAVA_1_8);
228             assertFalse(SystemUtils.IS_JAVA_1_9);
229             assertFalse(SystemUtils.IS_JAVA_9);
230             assertFalse(SystemUtils.IS_JAVA_10);
231             assertFalse(SystemUtils.IS_JAVA_11);
232             assertFalse(SystemUtils.IS_JAVA_12);
233             assertFalse(SystemUtils.IS_JAVA_13);
234             assertFalse(SystemUtils.IS_JAVA_14);
235             assertTrue(SystemUtils.IS_JAVA_15);
236             assertFalse(SystemUtils.IS_JAVA_16);
237             assertFalse(SystemUtils.IS_JAVA_17);
238             assertFalse(SystemUtils.IS_JAVA_18);
239         } else if (javaVersion.startsWith("16")) {
240             assertFalse(SystemUtils.IS_JAVA_1_1);
241             assertFalse(SystemUtils.IS_JAVA_1_2);
242             assertFalse(SystemUtils.IS_JAVA_1_3);
243             assertFalse(SystemUtils.IS_JAVA_1_4);
244             assertFalse(SystemUtils.IS_JAVA_1_5);
245             assertFalse(SystemUtils.IS_JAVA_1_6);
246             assertFalse(SystemUtils.IS_JAVA_1_7);
247             assertFalse(SystemUtils.IS_JAVA_1_8);
248             assertFalse(SystemUtils.IS_JAVA_1_9);
249             assertFalse(SystemUtils.IS_JAVA_9);
250             assertFalse(SystemUtils.IS_JAVA_10);
251             assertFalse(SystemUtils.IS_JAVA_11);
252             assertFalse(SystemUtils.IS_JAVA_12);
253             assertFalse(SystemUtils.IS_JAVA_13);
254             assertFalse(SystemUtils.IS_JAVA_14);
255             assertFalse(SystemUtils.IS_JAVA_15);
256             assertTrue(SystemUtils.IS_JAVA_16);
257             assertFalse(SystemUtils.IS_JAVA_17);
258             assertFalse(SystemUtils.IS_JAVA_18);
259         } else if (javaVersion.startsWith("17")) {
260             assertFalse(SystemUtils.IS_JAVA_1_1);
261             assertFalse(SystemUtils.IS_JAVA_1_2);
262             assertFalse(SystemUtils.IS_JAVA_1_3);
263             assertFalse(SystemUtils.IS_JAVA_1_4);
264             assertFalse(SystemUtils.IS_JAVA_1_5);
265             assertFalse(SystemUtils.IS_JAVA_1_6);
266             assertFalse(SystemUtils.IS_JAVA_1_7);
267             assertFalse(SystemUtils.IS_JAVA_1_8);
268             assertFalse(SystemUtils.IS_JAVA_1_9);
269             assertFalse(SystemUtils.IS_JAVA_9);
270             assertFalse(SystemUtils.IS_JAVA_10);
271             assertFalse(SystemUtils.IS_JAVA_11);
272             assertFalse(SystemUtils.IS_JAVA_12);
273             assertFalse(SystemUtils.IS_JAVA_13);
274             assertFalse(SystemUtils.IS_JAVA_14);
275             assertFalse(SystemUtils.IS_JAVA_15);
276             assertFalse(SystemUtils.IS_JAVA_16);
277             assertTrue(SystemUtils.IS_JAVA_17);
278             assertFalse(SystemUtils.IS_JAVA_18);
279         } else if (javaVersion.startsWith("18")) {
280             assertFalse(SystemUtils.IS_JAVA_1_1);
281             assertFalse(SystemUtils.IS_JAVA_1_2);
282             assertFalse(SystemUtils.IS_JAVA_1_3);
283             assertFalse(SystemUtils.IS_JAVA_1_4);
284             assertFalse(SystemUtils.IS_JAVA_1_5);
285             assertFalse(SystemUtils.IS_JAVA_1_6);
286             assertFalse(SystemUtils.IS_JAVA_1_7);
287             assertFalse(SystemUtils.IS_JAVA_1_8);
288             assertFalse(SystemUtils.IS_JAVA_1_9);
289             assertFalse(SystemUtils.IS_JAVA_9);
290             assertFalse(SystemUtils.IS_JAVA_10);
291             assertFalse(SystemUtils.IS_JAVA_11);
292             assertFalse(SystemUtils.IS_JAVA_12);
293             assertFalse(SystemUtils.IS_JAVA_13);
294             assertFalse(SystemUtils.IS_JAVA_14);
295             assertFalse(SystemUtils.IS_JAVA_15);
296             assertFalse(SystemUtils.IS_JAVA_16);
297             assertFalse(SystemUtils.IS_JAVA_17);
298             assertTrue(SystemUtils.IS_JAVA_18);
299         } else {
300             System.out.println("Can't test IS_JAVA value: " + javaVersion);
301         }
302     }
303 
304     @Test
test_IS_OS()305     public void test_IS_OS() {
306         final String osName = System.getProperty("os.name");
307         if (osName == null) {
308             assertFalse(SystemUtils.IS_OS_WINDOWS);
309             assertFalse(SystemUtils.IS_OS_UNIX);
310             assertFalse(SystemUtils.IS_OS_SOLARIS);
311             assertFalse(SystemUtils.IS_OS_LINUX);
312             assertFalse(SystemUtils.IS_OS_MAC_OSX);
313         } else if (osName.startsWith("Windows")) {
314             assertFalse(SystemUtils.IS_OS_UNIX);
315             assertTrue(SystemUtils.IS_OS_WINDOWS);
316         } else if (osName.startsWith("Solaris")) {
317             assertTrue(SystemUtils.IS_OS_SOLARIS);
318             assertTrue(SystemUtils.IS_OS_UNIX);
319             assertFalse(SystemUtils.IS_OS_WINDOWS);
320         } else if (osName.toLowerCase(Locale.ENGLISH).startsWith("linux")) {
321             assertTrue(SystemUtils.IS_OS_LINUX);
322             assertTrue(SystemUtils.IS_OS_UNIX);
323             assertFalse(SystemUtils.IS_OS_WINDOWS);
324         } else if (osName.startsWith("Mac OS X")) {
325             assertTrue(SystemUtils.IS_OS_MAC_OSX);
326             assertTrue(SystemUtils.IS_OS_UNIX);
327             assertFalse(SystemUtils.IS_OS_WINDOWS);
328         } else if (osName.startsWith("OS/2")) {
329             assertTrue(SystemUtils.IS_OS_OS2);
330             assertFalse(SystemUtils.IS_OS_UNIX);
331             assertFalse(SystemUtils.IS_OS_WINDOWS);
332         } else if (osName.startsWith("SunOS")) {
333             assertTrue(SystemUtils.IS_OS_SUN_OS);
334             assertTrue(SystemUtils.IS_OS_UNIX);
335             assertFalse(SystemUtils.IS_OS_WINDOWS);
336         } else if (osName.startsWith("FreeBSD")) {
337             assertTrue(SystemUtils.IS_OS_FREE_BSD);
338             assertTrue(SystemUtils.IS_OS_UNIX);
339             assertFalse(SystemUtils.IS_OS_WINDOWS);
340         } else {
341             System.out.println("Can't test IS_OS value: " + osName);
342         }
343     }
344 
345     @Test
test_IS_zOS()346     public void test_IS_zOS() {
347         final String osName = System.getProperty("os.name");
348         if (osName == null) {
349             assertFalse(SystemUtils.IS_OS_ZOS);
350         } else if (osName.contains("z/OS")) {
351             assertFalse(SystemUtils.IS_OS_WINDOWS);
352             assertTrue(SystemUtils.IS_OS_ZOS);
353         }
354     }
355 
356     /**
357      * Assumes no security manager exists.
358      */
359     @Test
test_USER_NAME()360     public void test_USER_NAME() {
361         assertEquals(System.getProperty("user.name"), SystemUtils.USER_NAME);
362     }
363 
364     @Test
testConstructor()365     public void testConstructor() {
366         assertNotNull(new SystemUtils());
367         final Constructor<?>[] cons = SystemUtils.class.getDeclaredConstructors();
368         assertEquals(1, cons.length);
369         assertTrue(Modifier.isPublic(cons[0].getModifiers()));
370         assertTrue(Modifier.isPublic(SystemUtils.class.getModifiers()));
371         assertFalse(Modifier.isFinal(SystemUtils.class.getModifiers()));
372     }
373 
374     @Test
testGetEnvironmentVariableAbsent()375     public void testGetEnvironmentVariableAbsent() {
376         final String name = "THIS_ENV_VAR_SHOULD_NOT_EXIST_FOR_THIS_TEST_TO_PASS";
377         final String expected = System.getenv(name);
378         assertNull(expected);
379         final String value = SystemUtils.getEnvironmentVariable(name, "DEFAULT");
380         assertEquals("DEFAULT", value);
381     }
382 
383     @Test
testGetEnvironmentVariablePresent()384     public void testGetEnvironmentVariablePresent() {
385         final String name = "PATH";
386         final String expected = System.getenv(name);
387         final String value = SystemUtils.getEnvironmentVariable(name, null);
388         assertEquals(expected, value);
389     }
390 
391     @Test
testGetHostName()392     public void testGetHostName() {
393         final String hostName = SystemUtils.getHostName();
394         final String expected = SystemUtils.IS_OS_WINDOWS ? System.getenv("COMPUTERNAME") : System.getenv("HOSTNAME");
395         assertEquals(expected, hostName);
396     }
397 
398     /**
399      * Assumes no security manager exists.
400      */
401     @Test
testGetJavaHome()402     public void testGetJavaHome() {
403         final File dir = SystemUtils.getJavaHome();
404         assertNotNull(dir);
405         assertTrue(dir.exists());
406     }
407 
408     /**
409      * Assumes no security manager exists.
410      */
411     @Test
testGetJavaIoTmpDir()412     public void testGetJavaIoTmpDir() {
413         final File dir = SystemUtils.getJavaIoTmpDir();
414         assertNotNull(dir);
415         assertTrue(dir.exists());
416     }
417 
418     /**
419      * Assumes no security manager exists.
420      */
421     @Test
testGetUserDir()422     public void testGetUserDir() {
423         final File dir = SystemUtils.getUserDir();
424         assertNotNull(dir);
425         assertTrue(dir.exists());
426     }
427 
428     /**
429      * Assumes no security manager exists.
430      */
431     @Test
testGetUserHome()432     public void testGetUserHome() {
433         final File dir = SystemUtils.getUserHome();
434         assertNotNull(dir);
435         assertTrue(dir.exists());
436     }
437 
438     /**
439      * Assumes no security manager exists.
440      */
441     @Test
testGetUserName()442     public void testGetUserName() {
443         assertEquals(System.getProperty("user.name"), SystemUtils.getUserName());
444         // Don't overwrite the system property in this test in case something goes awfully wrong.
445         assertEquals(System.getProperty("user.name", "foo"), SystemUtils.getUserName("foo"));
446     }
447 
448     @Test
testIsJavaVersionAtLeast()449     public void testIsJavaVersionAtLeast() {
450         if (SystemUtils.IS_JAVA_1_8) {
451             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
452             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
453             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_3));
454             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_4));
455             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_5));
456             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_6));
457             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_7));
458             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
459             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_9));
460             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_10));
461             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_11));
462             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_12));
463             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_13));
464         } else if (SystemUtils.IS_JAVA_9) {
465             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
466             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
467             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_3));
468             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_4));
469             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_5));
470             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_6));
471             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_7));
472             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
473             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_9));
474             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_10));
475             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_11));
476             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_12));
477             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_13));
478         } else if (SystemUtils.IS_JAVA_10) {
479             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
480             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
481             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_3));
482             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_4));
483             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_5));
484             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_6));
485             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_7));
486             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
487             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_9));
488             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_10));
489             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_11));
490             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_12));
491             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_13));
492         } else if (SystemUtils.IS_JAVA_11) {
493             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
494             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
495             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_3));
496             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_4));
497             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_5));
498             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_6));
499             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_7));
500             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
501             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_9));
502             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_10));
503             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_11));
504             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_12));
505             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_13));
506         } else if (SystemUtils.IS_JAVA_12) {
507             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
508             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
509             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_3));
510             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_4));
511             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_5));
512             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_6));
513             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_7));
514             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
515             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_9));
516             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_10));
517             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_11));
518             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_12));
519             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_13));
520         } else if (SystemUtils.IS_JAVA_13) {
521             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
522             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
523             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_3));
524             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_4));
525             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_5));
526             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_6));
527             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_7));
528             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
529             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_9));
530             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_10));
531             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_11));
532             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_12));
533             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_13));
534         }
535     }
536 
537     @Test
testIsJavaVersionAtMost()538     public void testIsJavaVersionAtMost() {
539         if (SystemUtils.IS_JAVA_1_8) {
540             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_1));
541             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_2));
542             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_3));
543             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_4));
544             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_5));
545             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_6));
546             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_7));
547             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_1_8));
548             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_9));
549             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_10));
550             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_11));
551             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_12));
552             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_13));
553         } else if (SystemUtils.IS_JAVA_9) {
554             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_1));
555             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_2));
556             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_3));
557             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_4));
558             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_5));
559             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_6));
560             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_7));
561             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_8));
562             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_9));
563             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_10));
564             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_11));
565             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_12));
566             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_13));
567         } else if (SystemUtils.IS_JAVA_10) {
568             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_1));
569             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_2));
570             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_3));
571             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_4));
572             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_5));
573             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_6));
574             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_7));
575             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_8));
576             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_9));
577             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_10));
578             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_11));
579             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_12));
580             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_13));
581         } else if (SystemUtils.IS_JAVA_11) {
582             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_1));
583             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_2));
584             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_3));
585             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_4));
586             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_5));
587             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_6));
588             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_7));
589             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_8));
590             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_9));
591             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_10));
592             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_11));
593             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_12));
594             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_13));
595         } else if (SystemUtils.IS_JAVA_12) {
596             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_1));
597             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_2));
598             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_3));
599             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_4));
600             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_5));
601             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_6));
602             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_7));
603             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_8));
604             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_9));
605             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_10));
606             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_11));
607             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_12));
608             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_13));
609         } else if (SystemUtils.IS_JAVA_13) {
610             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_1));
611             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_2));
612             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_3));
613             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_4));
614             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_5));
615             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_6));
616             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_7));
617             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_1_8));
618             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_9));
619             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_10));
620             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_11));
621             assertFalse(SystemUtils.isJavaVersionAtMost(JAVA_12));
622             assertTrue(SystemUtils.isJavaVersionAtMost(JAVA_13));
623         }
624     }
625 
626     @Test
testJavaAwtHeadless()627     public void testJavaAwtHeadless() {
628         final String expectedStringValue = System.getProperty("java.awt.headless");
629         final String expectedStringValueWithDefault = System.getProperty("java.awt.headless", "false");
630         assertNotNull(expectedStringValueWithDefault);
631         final boolean expectedValue = Boolean.parseBoolean(expectedStringValue);
632         if (expectedStringValue != null) {
633             assertEquals(expectedStringValue, SystemUtils.JAVA_AWT_HEADLESS);
634         }
635         assertEquals(expectedValue, SystemUtils.isJavaAwtHeadless());
636         assertEquals(expectedStringValueWithDefault, "" + SystemUtils.isJavaAwtHeadless());
637     }
638 
639     @Test
testJavaVersionMatches()640     public void testJavaVersionMatches() {
641         String javaVersion = null;
642         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
643         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
644         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
645         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
646         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
647         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
648         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
649         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
650         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
651         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
652         javaVersion = "";
653         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
654         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
655         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
656         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
657         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
658         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
659         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
660         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
661         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
662         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
663         javaVersion = "1.0";
664         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
665         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
666         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
667         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
668         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
669         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
670         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
671         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
672         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
673         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
674         javaVersion = "1.1";
675         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
676         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
677         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
678         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
679         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
680         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
681         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
682         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
683         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
684         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
685         javaVersion = "1.2";
686         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
687         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
688         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
689         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
690         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
691         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
692         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
693         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
694         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
695         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
696         javaVersion = "1.3.0";
697         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
698         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
699         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
700         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
701         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
702         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
703         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
704         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
705         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
706         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
707         javaVersion = "1.3.1";
708         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
709         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
710         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
711         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
712         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
713         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
714         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
715         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
716         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
717         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
718         javaVersion = "1.4.0";
719         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
720         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
721         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
722         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
723         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
724         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
725         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
726         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
727         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
728         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
729         javaVersion = "1.4.1";
730         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
731         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
732         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
733         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
734         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
735         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
736         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
737         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
738         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
739         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
740         javaVersion = "1.4.2";
741         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
742         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
743         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
744         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
745         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
746         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
747         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
748         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
749         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
750         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
751         javaVersion = "1.5.0";
752         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
753         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
754         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
755         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
756         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
757         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
758         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
759         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
760         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
761         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
762         javaVersion = "1.6.0";
763         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
764         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
765         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
766         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
767         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
768         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
769         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
770         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
771         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
772         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
773         javaVersion = "1.7.0";
774         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
775         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
776         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
777         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
778         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
779         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
780         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
781         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
782         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
783         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
784         javaVersion = "1.8.0";
785         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
786         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
787         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
788         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
789         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
790         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
791         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
792         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
793         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
794         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
795         javaVersion = "9";
796         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
797         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
798         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
799         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
800         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
801         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
802         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
803         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
804         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
805         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
806     }
807 
808     @Test
testOSMatchesName()809     public void testOSMatchesName() {
810         String osName = null;
811         assertFalse(SystemUtils.isOSNameMatch(osName, "Windows"));
812         osName = "";
813         assertFalse(SystemUtils.isOSNameMatch(osName, "Windows"));
814         osName = "Windows 95";
815         assertTrue(SystemUtils.isOSNameMatch(osName, "Windows"));
816         osName = "Windows NT";
817         assertTrue(SystemUtils.isOSNameMatch(osName, "Windows"));
818         osName = "OS/2";
819         assertFalse(SystemUtils.isOSNameMatch(osName, "Windows"));
820     }
821 
822     @Test
testOSMatchesNameAndVersion()823     public void testOSMatchesNameAndVersion() {
824         String osName = null;
825         String osVersion = null;
826         assertFalse(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
827         osName = "";
828         osVersion = "";
829         assertFalse(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
830         osName = "Windows 95";
831         osVersion = "4.0";
832         assertFalse(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
833         osName = "Windows 95";
834         osVersion = "4.1";
835         assertTrue(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
836         osName = "Windows 98";
837         osVersion = "4.1";
838         assertTrue(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
839         osName = "Windows NT";
840         osVersion = "4.0";
841         assertFalse(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
842         osName = "OS/2";
843         osVersion = "4.0";
844         assertFalse(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
845     }
846 
847     @Test
testOsVersionMatches()848     public void testOsVersionMatches() {
849         String osVersion = null;
850         assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.1"));
851 
852         osVersion = "";
853         assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.1"));
854 
855         osVersion = "10";
856         assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.1"));
857         assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.1.1"));
858         assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.10"));
859         assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.10.1"));
860 
861         osVersion = "10.1";
862         assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.1"));
863         assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.1.1"));
864         assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.10"));
865         assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.10.1"));
866 
867         osVersion = "10.1.1";
868         assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.1"));
869         assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.1.1"));
870         assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.10"));
871         assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.10.1"));
872 
873         osVersion = "10.10";
874         assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.1"));
875         assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.1.1"));
876         assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.10"));
877         assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.10.1"));
878 
879         osVersion = "10.10.1";
880         assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.1"));
881         assertFalse(SystemUtils.isOSVersionMatch(osVersion, "10.1.1"));
882         assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.10"));
883         assertTrue(SystemUtils.isOSVersionMatch(osVersion, "10.10.1"));
884     }
885 }
886