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