1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.shared.utils;
20
21 import java.util.Set;
22
23 import org.junit.After;
24 import org.junit.Assert;
25 import org.junit.Before;
26 import org.junit.Test;
27
28 import static org.hamcrest.CoreMatchers.*;
29 import static org.hamcrest.MatcherAssert.assertThat;
30
31
32
33
34
35
36 public class OsTest {
37 private String origOsName;
38 private String origOsArch;
39 private String origOsVersion;
40
41 @Before
42 public void setUp() {
43 origOsName = System.getProperty("os.name");
44 origOsArch = System.getProperty("os.arch");
45 origOsVersion = System.getProperty("os.version");
46
47
48 System.setProperty("os.name", "os/2");
49 System.setProperty("os.arch", "i386");
50 System.setProperty("os.version", "2.1.32");
51 }
52
53 @After
54 public void tearDown() {
55
56 System.setProperty("os.name", origOsName);
57 System.setProperty("os.arch", origOsArch);
58 System.setProperty("os.version", origOsVersion);
59 }
60
61 @Test
62 public void testConstructor() {
63 Os os = new Os();
64 os.eval();
65
66 Assert.assertTrue(Os.isName(Os.FAMILY_OS2));
67
68 Assert.assertFalse(Os.isName(Os.FAMILY_DOS));
69 Assert.assertFalse(Os.isName(Os.FAMILY_MAC));
70 Assert.assertFalse(Os.isName(Os.FAMILY_NETWARE));
71 Assert.assertFalse(Os.isName(Os.FAMILY_OPENVMS));
72 Assert.assertFalse(Os.isName(Os.FAMILY_OS400));
73 Assert.assertFalse(Os.isName(Os.FAMILY_TANDEM));
74 Assert.assertFalse(Os.isName(Os.FAMILY_UNIX));
75 Assert.assertFalse(Os.isName(Os.FAMILY_WIN9X));
76 Assert.assertFalse(Os.isName(Os.FAMILY_WINDOWS));
77 Assert.assertFalse(Os.isName(Os.FAMILY_ZOS));
78 }
79
80 @Test
81 public void testFamilyNames() {
82 Assert.assertEquals(Os.FAMILY_DOS, "dos");
83 Assert.assertEquals(Os.FAMILY_MAC, "mac");
84 Assert.assertEquals(Os.FAMILY_NETWARE, "netware");
85 Assert.assertEquals(Os.FAMILY_OPENVMS, "openvms");
86 Assert.assertEquals(Os.FAMILY_OS2, "os/2");
87 Assert.assertEquals(Os.FAMILY_OS400, "os/400");
88 Assert.assertEquals(Os.FAMILY_TANDEM, "tandem");
89 Assert.assertEquals(Os.FAMILY_UNIX, "unix");
90 Assert.assertEquals(Os.FAMILY_WIN9X, "win9x");
91 Assert.assertEquals(Os.FAMILY_WINDOWS, "windows");
92 Assert.assertEquals(Os.FAMILY_ZOS, "z/os");
93 }
94
95 @Test
96 public void testGetValidFamilies() {
97 Set<String> osFamilies = Os.getValidFamilies();
98
99 Assert.assertTrue("OsFamilies Set size", osFamilies.size() >= 11);
100
101 Assert.assertTrue(osFamilies.contains(Os.FAMILY_DOS));
102 Assert.assertTrue(osFamilies.contains(Os.FAMILY_MAC));
103 Assert.assertTrue(osFamilies.contains(Os.FAMILY_NETWARE));
104 Assert.assertTrue(osFamilies.contains(Os.FAMILY_OPENVMS));
105 Assert.assertTrue(osFamilies.contains(Os.FAMILY_OS2));
106 Assert.assertTrue(osFamilies.contains(Os.FAMILY_OS400));
107 Assert.assertTrue(osFamilies.contains(Os.FAMILY_TANDEM));
108 Assert.assertTrue(osFamilies.contains(Os.FAMILY_UNIX));
109 Assert.assertTrue(osFamilies.contains(Os.FAMILY_WIN9X));
110 Assert.assertTrue(osFamilies.contains(Os.FAMILY_WINDOWS));
111 Assert.assertTrue(osFamilies.contains(Os.FAMILY_ZOS));
112 }
113
114 @Test
115 public void testIsArch() {
116 assertThat("Arch is i386", Os.isArch("i386"), is(true));
117
118 assertThat("Os is not Mac", Os.isArch("x86_64"), is(false));
119 }
120
121 @Test
122 public void testIsFamily() {
123 assertThat("Family is os/2", Os.isFamily(Os.FAMILY_OS2), is(true));
124
125 assertThat("Family is not mac", Os.isFamily(Os.FAMILY_MAC), is(false));
126 }
127
128 @Test
129 public void testIsName() {
130 assertThat("Name is os/2", Os.isName("os/2"), is(true));
131
132 assertThat("Name is not Mac OS X", Os.isName("Mac OS X"), is(false));
133 }
134
135 @Test
136 public void testIsValidFamily() {
137 assertThat("os/2 isValidFamily", Os.isValidFamily(Os.FAMILY_OS2), is(true));
138
139 assertThat("iPone != isValidFamily", Os.isValidFamily("iPhone"), is(false));
140 }
141
142 @Test
143 public void testIsVersion() {
144 assertThat("isVersion", Os.isVersion("2.1.32"), is(true));
145
146 assertThat("isVersion", Os.isVersion("2.1"), is(false));
147
148 assertThat("isVersion", Os.isVersion("4.5"), is(false));
149 }
150 }