1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.owasp.dependencycheck.dependency;
19
20 import static org.junit.Assert.assertEquals;
21 import static org.junit.Assert.assertTrue;
22 import static org.junit.Assert.assertFalse;
23
24 import org.junit.Test;
25 import org.owasp.dependencycheck.BaseTest;
26
27
28
29
30
31 public class VulnerableSoftwareTest extends BaseTest {
32
33
34
35
36 @Test
37 public void testEquals() {
38 VulnerableSoftware obj = new VulnerableSoftware();
39 obj.setCpe("cpe:/a:mortbay:jetty:6.1.0");
40 VulnerableSoftware instance = new VulnerableSoftware();
41 instance.setCpe("cpe:/a:mortbay:jetty:6.1");
42 assertFalse(instance.equals(obj));
43 }
44
45
46
47
48 @Test
49 public void testEquals2() {
50 VulnerableSoftware obj = new VulnerableSoftware();
51 obj.setCpe("cpe:/a:mortbay:jetty:6.1.0");
52 VulnerableSoftware instance = new VulnerableSoftware();
53 instance.setCpe("cpe:/a:mortbay:jetty:6.1.0");
54 obj.setPreviousVersion("1");
55 assertTrue(instance.equals(obj));
56 }
57
58
59
60
61 @Test
62 public void testHashCode() {
63 VulnerableSoftware instance = new VulnerableSoftware();
64 instance.setCpe("cpe:/a:mortbay:jetty:6.1");
65 int expResult = 1849413912;
66 int result = instance.hashCode();
67 assertEquals(expResult, result);
68 }
69
70
71
72
73 @Test
74 public void testCompareTo() {
75 VulnerableSoftware vs = new VulnerableSoftware();
76 vs.setCpe("cpe:/a:mortbay:jetty:6.1.0");
77 VulnerableSoftware instance = new VulnerableSoftware();
78 instance.setCpe("cpe:/a:mortbay:jetty:6.1");
79 int expResult = -2;
80 int result = instance.compareTo(vs);
81 assertEquals(expResult, result);
82
83 vs = new VulnerableSoftware();
84 vs.setCpe("cpe:/a:yahoo:toolbar:3.1.0.20130813024103");
85 instance = new VulnerableSoftware();
86 instance.setCpe("cpe:/a:yahoo:toolbar:3.1.0.20130813024104");
87 expResult = 1;
88 result = instance.compareTo(vs);
89 assertEquals(expResult, result);
90 }
91
92 @Test
93 public void testCompareToNonNumerical() {
94 VulnerableSoftware vs = new VulnerableSoftware();
95 vs.setCpe("cpe:/a:mysql:mysql:5.1.23a");
96 VulnerableSoftware vs1 = new VulnerableSoftware();
97 vs1.setCpe("cpe:/a:mysql:mysql:5.1.23a");
98 vs1.setPreviousVersion("1");
99 assertEquals(0, vs.compareTo(vs1));
100 assertEquals(0, vs1.compareTo(vs));
101 }
102
103 @Test
104 public void testCompareToComplex() {
105 VulnerableSoftware vs = new VulnerableSoftware();
106 VulnerableSoftware vs1 = new VulnerableSoftware();
107
108 vs.setCpe("2.1");
109 vs1.setCpe("2.1.10");
110 assertTrue(vs.compareTo(vs1) < 0);
111
112 vs.setCpe("cpe:/a:hp:system_management_homepage:2.1.1");
113 vs1.setCpe("cpe:/a:hp:system_management_homepage:2.1.10");
114 assertTrue(vs.compareTo(vs1) < 0);
115
116 vs.setCpe("10");
117 vs1.setCpe("10-186");
118 assertTrue(vs.compareTo(vs1) < 0);
119
120 vs.setCpe("2.1.10");
121 vs1.setCpe("2.1.10-186");
122 assertTrue(vs.compareTo(vs1) < 0);
123
124 vs.setCpe("cpe:/a:hp:system_management_homepage:2.1.10");
125 vs1.setCpe("cpe:/a:hp:system_management_homepage:2.1.10-186");
126 assertTrue(vs.compareTo(vs1) < 0);
127
128 }
129
130 @Test
131 public void testEqualsPreviousVersion() {
132 VulnerableSoftware vs = new VulnerableSoftware();
133 vs.setCpe("cpe:/a:mysql:mysql:5.1.23a");
134 VulnerableSoftware vs1 = new VulnerableSoftware();
135 vs1.setCpe("cpe:/a:mysql:mysql:5.1.23a");
136 vs1.setPreviousVersion("1");
137 assertEquals(vs, vs1);
138 assertEquals(vs1, vs);
139
140 }
141
142 @Test
143 public void testParseCPE() {
144 VulnerableSoftware vs = new VulnerableSoftware();
145
146 vs.setCpe("cpe:/a:mysql:mysql:5.1.23a");
147 assertEquals("mysql", vs.getVendor());
148 assertEquals("mysql", vs.getProduct());
149 assertEquals("5.1.23a", vs.getVersion());
150 }
151 }