1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.owasp.dependencycheck.utils;
19
20 import java.util.Arrays;
21 import java.util.Iterator;
22 import java.util.List;
23 import static org.junit.Assert.assertArrayEquals;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertTrue;
26 import org.junit.Test;
27 import org.owasp.dependencycheck.BaseTest;
28
29
30
31
32
33 public class DependencyVersionTest extends BaseTest {
34
35
36
37
38 @Test
39 public void testParseVersion() {
40 String version = "1.2r1";
41 DependencyVersion instance = new DependencyVersion();
42 instance.parseVersion(version);
43 List<String> parts = instance.getVersionParts();
44 assertEquals(3, parts.size());
45 assertEquals("1", parts.get(0));
46 assertEquals("2", parts.get(1));
47 assertEquals("r1", parts.get(2));
48
49 version = "x6.0";
50 instance.parseVersion("x6.0");
51 parts = instance.getVersionParts();
52 assertEquals(2, parts.size());
53 assertEquals("x6", parts.get(0));
54 assertEquals("0", parts.get(1));
55
56
57
58
59 version = "1.2.3\nThis is a test message";
60 instance = new DependencyVersion();
61 instance.parseVersion(version);
62 parts = instance.getVersionParts();
63 assertEquals(3, parts.size());
64 assertEquals("1", parts.get(0));
65 assertEquals("2", parts.get(1));
66 assertEquals("3", parts.get(2));
67 }
68
69
70
71
72 @Test
73 public void testIterator() {
74 DependencyVersion instance = new DependencyVersion("1.2.3");
75 Iterator<String> result = instance.iterator();
76 assertTrue(result.hasNext());
77 int count = 1;
78 while (result.hasNext()) {
79 String v = result.next();
80 assertTrue(String.valueOf(count++).equals(v));
81 }
82 }
83
84
85
86
87 @Test
88 public void testToString() {
89 DependencyVersion instance = new DependencyVersion("1.2.3r1");
90 String expResult = "1.2.3.r1";
91 String result = instance.toString();
92 assertEquals(expResult, result);
93 }
94
95
96
97
98 @Test
99 public void testEquals() {
100 DependencyVersion obj = new DependencyVersion("1.2.3.r1");
101 DependencyVersion instance = new DependencyVersion("1.2.3");
102 boolean expResult = false;
103 boolean result = instance.equals(obj);
104 assertEquals(expResult, result);
105 obj = new DependencyVersion("1.2.3");
106 expResult = true;
107 result = instance.equals(obj);
108 assertEquals(expResult, result);
109
110 instance = new DependencyVersion("2.0.0");
111 obj = new DependencyVersion("2");
112 expResult = false;
113 result = instance.equals(obj);
114 assertEquals(expResult, result);
115
116 obj = new DependencyVersion("2.0");
117 expResult = true;
118 result = instance.equals(obj);
119 assertEquals(expResult, result);
120
121
122 }
123
124
125
126
127 @Test
128 public void testHashCode() {
129 DependencyVersion instance = new DependencyVersion("3.2.1");
130 int expResult = 80756;
131 int result = instance.hashCode();
132 assertEquals(expResult, result);
133 }
134
135
136
137
138 @Test
139 public void testMatchesAtLeastThreeLevels() {
140
141 DependencyVersion instance = new DependencyVersion("2.3.16.3");
142 DependencyVersion version = new DependencyVersion("2.3.16.4");
143
144 assertEquals(true, instance.matchesAtLeastThreeLevels(version));
145 version = new DependencyVersion("2.3");
146 assertEquals(true, instance.matchesAtLeastThreeLevels(version));
147
148 version = new DependencyVersion("2.3.16.1");
149 assertEquals(false, instance.matchesAtLeastThreeLevels(version));
150 version = new DependencyVersion("2");
151 assertEquals(false, instance.matchesAtLeastThreeLevels(version));
152 }
153
154
155
156
157 @Test
158 public void testCompareTo() {
159 DependencyVersion instance = new DependencyVersion("1.2.3");
160 DependencyVersion version = new DependencyVersion("1.2.3");
161 assertEquals(0, instance.compareTo(version));
162 version = new DependencyVersion("1.1");
163 assertEquals(1, instance.compareTo(version));
164 version = new DependencyVersion("1.2");
165 assertEquals(1, instance.compareTo(version));
166 version = new DependencyVersion("1.3");
167 assertEquals(-1, instance.compareTo(version));
168 version = new DependencyVersion("1.2.3.1");
169 assertEquals(-1, instance.compareTo(version));
170
171 instance = new DependencyVersion("1.0.1n");
172 version = new DependencyVersion("1.0.1m");
173 assertEquals(1, instance.compareTo(version));
174 version = new DependencyVersion("1.0.1n");
175 assertEquals(0, instance.compareTo(version));
176 version = new DependencyVersion("1.0.1o");
177 assertEquals(-1, instance.compareTo(version));
178
179 DependencyVersion[] dv = new DependencyVersion[7];
180 dv[0] = new DependencyVersion("2.1.3");
181 dv[1] = new DependencyVersion("2.1.3.r2");
182 dv[2] = new DependencyVersion("2.1.3.r1");
183 dv[3] = new DependencyVersion("1.2.3.1");
184 dv[4] = new DependencyVersion("1.2.3");
185 dv[5] = new DependencyVersion("2");
186 dv[6] = new DependencyVersion("-");
187
188 DependencyVersion[] expected = new DependencyVersion[7];
189 expected[0] = new DependencyVersion("-");
190 expected[1] = new DependencyVersion("1.2.3");
191 expected[2] = new DependencyVersion("1.2.3.1");
192 expected[3] = new DependencyVersion("2");
193 expected[4] = new DependencyVersion("2.1.3");
194 expected[5] = new DependencyVersion("2.1.3.r1");
195 expected[6] = new DependencyVersion("2.1.3.r2");
196 Arrays.sort(dv);
197
198 assertArrayEquals(expected, dv);
199 }
200
201
202
203
204 @Test
205 public void testGetVersionParts() {
206 DependencyVersion instance = new DependencyVersion();
207 List<String> versionParts = Arrays.asList("1", "1", "1");
208 instance.setVersionParts(versionParts);
209 List<String> expResult = Arrays.asList("1", "1", "1");
210 List<String> result = instance.getVersionParts();
211 assertEquals(expResult, result);
212 }
213
214
215
216
217 @Test
218 public void testSetVersionParts() {
219 List<String> versionParts = Arrays.asList("1", "1", "1");
220 DependencyVersion instance = new DependencyVersion();
221 instance.setVersionParts(versionParts);
222 List<String> results = instance.getVersionParts();
223 assertEquals(versionParts, results);
224 }
225 }