1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.owasp.dependencycheck.data.update;
17
18 import java.text.DateFormat;
19 import java.text.SimpleDateFormat;
20 import java.util.Properties;
21 import mockit.Mock;
22 import mockit.MockUp;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertTrue;
25 import org.junit.Test;
26 import org.owasp.dependencycheck.BaseTest;
27 import org.owasp.dependencycheck.data.nvdcve.DatabaseProperties;
28 import org.owasp.dependencycheck.data.update.exception.UpdateException;
29 import org.owasp.dependencycheck.utils.DependencyVersion;
30
31
32
33
34
35 public class EngineVersionCheckTest extends BaseTest {
36
37
38
39
40
41
42
43
44
45
46
47
48 @Test
49 public void testShouldUpdate() throws Exception {
50 DatabaseProperties properties = new MockUp<DatabaseProperties>() {
51 final private Properties properties = new Properties();
52
53 @Mock
54 public void save(String key, String value) throws UpdateException {
55 properties.setProperty(key, value);
56 }
57
58 @Mock
59 public String getProperty(String key) {
60 return properties.getProperty(key);
61 }
62
63 }.getMockInstance();
64
65 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
66
67 String updateToVersion = "1.2.6";
68 String currentVersion = "1.2.6";
69 long lastChecked = df.parse("2014-12-01").getTime();
70 long now = df.parse("2014-12-01").getTime();
71
72 EngineVersionCheck instance = new EngineVersionCheck();
73 boolean expResult = false;
74 instance.setUpdateToVersion(updateToVersion);
75 boolean result = instance.shouldUpdate(lastChecked, now, properties, currentVersion);
76 assertEquals(expResult, result);
77
78 updateToVersion = "1.2.5";
79 currentVersion = "1.2.5";
80 lastChecked = df.parse("2014-10-01").getTime();
81 now = df.parse("2014-12-01").getTime();
82 expResult = true;
83 instance.setUpdateToVersion(updateToVersion);
84 result = instance.shouldUpdate(lastChecked, now, properties, currentVersion);
85 assertEquals(expResult, result);
86
87
88 updateToVersion = "1.2.5";
89 currentVersion = "1.2.5";
90 lastChecked = df.parse("2014-12-01").getTime();
91 now = df.parse("2014-12-03").getTime();
92 expResult = false;
93 instance.setUpdateToVersion(updateToVersion);
94 result = instance.shouldUpdate(lastChecked, now, properties, currentVersion);
95 assertEquals(expResult, result);
96
97 updateToVersion = "1.2.6";
98 currentVersion = "1.2.5";
99 lastChecked = df.parse("2014-12-01").getTime();
100 now = df.parse("2014-12-03").getTime();
101 expResult = true;
102 instance.setUpdateToVersion(updateToVersion);
103 result = instance.shouldUpdate(lastChecked, now, properties, currentVersion);
104 assertEquals(expResult, result);
105
106 updateToVersion = "1.2.5";
107 currentVersion = "1.2.6";
108 lastChecked = df.parse("2014-12-01").getTime();
109 now = df.parse("2014-12-08").getTime();
110 expResult = false;
111 instance.setUpdateToVersion(updateToVersion);
112 result = instance.shouldUpdate(lastChecked, now, properties, currentVersion);
113 assertEquals(expResult, result);
114
115 updateToVersion = "";
116 currentVersion = "1.2.5";
117 lastChecked = df.parse("2014-12-01").getTime();
118 now = df.parse("2014-12-03").getTime();
119 expResult = false;
120 instance.setUpdateToVersion(updateToVersion);
121 result = instance.shouldUpdate(lastChecked, now, properties, currentVersion);
122 assertEquals(expResult, result);
123
124 updateToVersion = "";
125 currentVersion = "1.2.5";
126 lastChecked = df.parse("2014-12-01").getTime();
127 now = df.parse("2015-12-08").getTime();
128 expResult = true;
129 instance.setUpdateToVersion(updateToVersion);
130 result = instance.shouldUpdate(lastChecked, now, properties, currentVersion);
131 assertEquals(expResult, result);
132 }
133
134
135
136
137 @Test
138 public void testGetCurrentReleaseVersion() {
139 EngineVersionCheck instance = new EngineVersionCheck();
140 DependencyVersion minExpResult = new DependencyVersion("1.2.6");
141 String release = instance.getCurrentReleaseVersion();
142 DependencyVersion result = new DependencyVersion(release);
143 assertTrue(minExpResult.compareTo(result) <= 0);
144 }
145 }