11package com .googlecode .cppcheclipse .core .command ;
22
33import static org .junit .Assert .assertEquals ;
4+ import static org .junit .Assert .assertFalse ;
5+ import static org .junit .Assert .assertTrue ;
46
57import org .junit .Test ;
68
9+ import com .googlecode .cppcheclipse .core .command .Version .VersionType ;
10+
711public class TestVersion {
812
913 // compare with issue 47
@@ -14,26 +18,318 @@ public void testDevelopmentVersion() {
1418 assertEquals (1 , version .getMajorVersion ());
1519 assertEquals (55 , version .getMinorVersion ());
1620 }
17-
21+
1822 @ Test (expected =IllegalArgumentException .class )
1923 public void testInvalidVersion () {
2024 new Version ("1.2.3" );
2125 }
22-
26+
2327 @ Test
2428 public void testReleaseVersion () {
2529 String versionString = "cppcheck 1.55" ;
2630 Version version = new Version (versionString );
2731 assertEquals (1 , version .getMajorVersion ());
2832 assertEquals (55 , version .getMinorVersion ());
33+ assertEquals (0 , version .getRevision ());
34+ assertEquals (0 , version .getPatch ());
35+ assertEquals (VersionType .OPEN_SOURCE , version .getType ());
2936 }
30-
37+
3138 @ Test
3239 public void testReleaseVersionWithRevision () {
3340 String versionString = "cppcheck 1.2.3" ;
3441 Version version = new Version (versionString );
3542 assertEquals (1 , version .getMajorVersion ());
3643 assertEquals (2 , version .getMinorVersion ());
3744 assertEquals (3 , version .getRevision ());
45+ assertEquals (0 , version .getPatch ());
46+ assertEquals (VersionType .OPEN_SOURCE , version .getType ());
3847 }
48+
49+ @ Test
50+ public void testReleaseVersionWithPatch () {
51+ String versionString = "cppcheck 1.2.3.4" ;
52+ Version version = new Version (versionString );
53+ assertEquals (1 , version .getMajorVersion ());
54+ assertEquals (2 , version .getMinorVersion ());
55+ assertEquals (3 , version .getRevision ());
56+ assertEquals (4 , version .getPatch ());
57+ assertEquals (VersionType .OPEN_SOURCE , version .getType ());
58+ }
59+
60+ @ Test
61+ public void testReleaseVersionPremium () {
62+ String versionString = "cppcheck premium 1.2.3.4" ;
63+ Version version = new Version (versionString );
64+ assertEquals (1 , version .getMajorVersion ());
65+ assertEquals (2 , version .getMinorVersion ());
66+ assertEquals (3 , version .getRevision ());
67+ assertEquals (4 , version .getPatch ());
68+ assertEquals (VersionType .PREMIUM , version .getType ());
69+ }
70+
71+ @ Test
72+ public void testReleaseVersionPremiumSafetyCertified () {
73+ String versionString = "cppcheck premium 1.2.3.4s" ;
74+ Version version = new Version (versionString );
75+ assertEquals (1 , version .getMajorVersion ());
76+ assertEquals (2 , version .getMinorVersion ());
77+ assertEquals (3 , version .getRevision ());
78+ assertEquals (4 , version .getPatch ());
79+ assertEquals (VersionType .PREMIUM_SAFETY_CERTIFIED , version .getType ());
80+ }
81+
82+ @ Test (expected =IllegalArgumentException .class )
83+ public void testIsGreaterThanCompareInvalidVersion () {
84+ Version version1 = new Version ("cppcheck 1.3" );
85+ Version version2 = new Version ("cppcheck premium 2.3" );
86+ version2 .isGreaterThan (version1 );
87+ }
88+
89+ @ Test (expected =IllegalArgumentException .class )
90+ public void testIsGreaterThanCompareInvalidVersion2 () {
91+ Version version1 = new Version ("cppcheck 1.3" );
92+ Version version2 = new Version ("cppcheck premium 2.3s" );
93+ version2 .isGreaterThan (version1 );
94+ }
95+
96+ @ Test (expected =IllegalArgumentException .class )
97+ public void testIsGreaterThanCompareInvalidVersion3 () {
98+ Version version1 = new Version ("cppcheck premium 1.3" );
99+ Version version2 = new Version ("cppcheck premium 2.3s" );
100+ version2 .isGreaterThan (version1 );
101+ }
102+
103+ @ Test
104+ public void testIsGreaterThanWithDifferentMajorVersions () {
105+ Version version1 = new Version ("cppcheck 1.3" );
106+ Version version2 = new Version ("cppcheck 2.3" );
107+ assertTrue (version2 .isGreaterThan (version1 ));
108+ assertFalse (version1 .isGreaterThan (version2 ));
109+ }
110+
111+ @ Test
112+ public void testIsGreaterThanPremiumWithDifferentMajorVersions () {
113+ Version version1 = new Version ("cppcheck premium 1.3" );
114+ Version version2 = new Version ("cppcheck premium 2.3" );
115+ assertTrue (version2 .isGreaterThan (version1 ));
116+ assertFalse (version1 .isGreaterThan (version2 ));
117+ }
118+
119+ @ Test
120+ public void testIsGreaterThanPremiumSafetyCertifiedWithDifferentMajorVersions () {
121+ Version version1 = new Version ("cppcheck premium 1.3s" );
122+ Version version2 = new Version ("cppcheck premium 2.3s" );
123+ assertTrue (version2 .isGreaterThan (version1 ));
124+ assertFalse (version1 .isGreaterThan (version2 ));
125+ }
126+
127+ @ Test
128+ public void testIsGreaterThanWithSameMajorAndMinorVersions () {
129+ Version version1 = new Version ("cppcheck 1.2" );
130+ Version version2 = new Version ("cppcheck 1.2" );
131+ assertFalse (version2 .isGreaterThan (version1 ));
132+ assertFalse (version1 .isGreaterThan (version2 ));
133+ }
134+
135+ @ Test
136+ public void testIsGreaterThanPremiumWithSameMajorAndMinorVersions () {
137+ Version version1 = new Version ("cppcheck premium 1.2" );
138+ Version version2 = new Version ("cppcheck premium 1.2" );
139+ assertFalse (version2 .isGreaterThan (version1 ));
140+ assertFalse (version1 .isGreaterThan (version2 ));
141+ }
142+
143+ @ Test
144+ public void testIsGreaterThanPremiumSafetyCerifiedWithSameMajorAndMinorVersions () {
145+ Version version1 = new Version ("cppcheck premium 1.2s" );
146+ Version version2 = new Version ("cppcheck premium 1.2s" );
147+ assertFalse (version2 .isGreaterThan (version1 ));
148+ assertFalse (version1 .isGreaterThan (version2 ));
149+ }
150+
151+ @ Test
152+ public void testIsGreaterThanDifferentMinorVersions () {
153+ Version version1 = new Version ("cppcheck 1.2" );
154+ Version version2 = new Version ("cppcheck 1.3" );
155+ assertTrue (version2 .isGreaterThan (version1 ));
156+ assertFalse (version1 .isGreaterThan (version2 ));
157+ }
158+
159+ @ Test
160+ public void testIsGreaterThanPremiumDifferentMinorVersions () {
161+ Version version1 = new Version ("cppcheck premium 1.2" );
162+ Version version2 = new Version ("cppcheck premium 1.3" );
163+ assertTrue (version2 .isGreaterThan (version1 ));
164+ assertFalse (version1 .isGreaterThan (version2 ));
165+ }
166+
167+ @ Test
168+ public void testIsGreaterThanPremiumSafetyCertifiedDifferentMinorVersions () {
169+ Version version1 = new Version ("cppcheck premium 1.2s" );
170+ Version version2 = new Version ("cppcheck premium 1.3s" );
171+ assertTrue (version2 .isGreaterThan (version1 ));
172+ assertFalse (version1 .isGreaterThan (version2 ));
173+ }
174+
175+ @ Test
176+ public void testIsGreaterThanWithDifferentMajorVersions2 () {
177+ Version version1 = new Version ("cppcheck 1.2.3" );
178+ Version version2 = new Version ("cppcheck 2.0.0" );
179+ assertTrue (version2 .isGreaterThan (version1 ));
180+ assertFalse (version1 .isGreaterThan (version2 ));
181+ }
182+
183+ @ Test
184+ public void testIsGreaterThanPremiumWithDifferentMajorVersions2 () {
185+ Version version1 = new Version ("cppcheck premium 1.2.3" );
186+ Version version2 = new Version ("cppcheck premium 2.0.0" );
187+ assertTrue (version2 .isGreaterThan (version1 ));
188+ assertFalse (version1 .isGreaterThan (version2 ));
189+ }
190+
191+ @ Test
192+ public void testIsGreaterThanPremiuSafetyCertifiedmWithDifferentMajorVersions2 () {
193+ Version version1 = new Version ("cppcheck premium 1.2.3s" );
194+ Version version2 = new Version ("cppcheck premium 2.0.0s" );
195+ assertTrue (version2 .isGreaterThan (version1 ));
196+ assertFalse (version1 .isGreaterThan (version2 ));
197+ }
198+
199+ @ Test
200+ public void testIsGreaterThanDifferentMinorVersions2 () {
201+ Version version1 = new Version ("cppcheck 1.2.6" );
202+ Version version2 = new Version ("cppcheck 1.3.0" );
203+ assertTrue (version2 .isGreaterThan (version1 ));
204+ assertFalse (version1 .isGreaterThan (version2 ));
205+ }
206+
207+ @ Test
208+ public void testIsGreaterThanPremiumDifferentMinorVersions2 () {
209+ Version version1 = new Version ("cppcheck premium 1.2.6" );
210+ Version version2 = new Version ("cppcheck premium 1.3.0" );
211+ assertTrue (version2 .isGreaterThan (version1 ));
212+ assertFalse (version1 .isGreaterThan (version2 ));
213+ }
214+
215+ @ Test
216+ public void testIsGreaterThanPremiumSafetyCertifiedDifferentMinorVersions2 () {
217+ Version version1 = new Version ("cppcheck premium 1.2.6s" );
218+ Version version2 = new Version ("cppcheck premium 1.3.0s" );
219+ assertTrue (version2 .isGreaterThan (version1 ));
220+ assertFalse (version1 .isGreaterThan (version2 ));
221+ }
222+
223+ @ Test
224+ public void testIsGreaterThanWithDiffrentRevisionVersions () {
225+ Version version1 = new Version ("cppcheck 1.2.3" );
226+ Version version2 = new Version ("cppcheck 1.2.4" );
227+ assertTrue (version2 .isGreaterThan (version1 ));
228+ assertFalse (version1 .isGreaterThan (version2 ));
229+ }
230+
231+ @ Test
232+ public void testIsGreaterThanPremiumWithDiffrentRevisionVersions () {
233+ Version version1 = new Version ("cppcheck premium 1.2.3" );
234+ Version version2 = new Version ("cppcheck premium 1.2.4" );
235+ assertTrue (version2 .isGreaterThan (version1 ));
236+ assertFalse (version1 .isGreaterThan (version2 ));
237+ }
238+
239+ @ Test
240+ public void testIsGreaterThanPremiumSafetyCertifiedWithDiffrentRevisionVersions () {
241+ Version version1 = new Version ("cppcheck premium 1.2.3s" );
242+ Version version2 = new Version ("cppcheck premium 1.2.4s" );
243+ assertTrue (version2 .isGreaterThan (version1 ));
244+ assertFalse (version1 .isGreaterThan (version2 ));
245+ }
246+
247+ @ Test
248+ public void testIsGreaterThanWithSameVersions () {
249+ Version version1 = new Version ("cppcheck 1.2.3" );
250+ Version version2 = new Version ("cppcheck 1.2.3" );
251+ assertFalse (version2 .isGreaterThan (version1 ));
252+ assertFalse (version1 .isGreaterThan (version2 ));
253+ }
254+
255+ @ Test
256+ public void testIsGreaterThanWithDiffrentRevisionVersions2 () {
257+ Version version1 = new Version ("cppcheck 1.2.3.5" );
258+ Version version2 = new Version ("cppcheck 1.2.4.5" );
259+ assertTrue (version2 .isGreaterThan (version1 ));
260+ assertFalse (version1 .isGreaterThan (version2 ));
261+ }
262+
263+ @ Test
264+ public void testIsGreaterThanWithDifferentPatchVersions () {
265+ Version version1 = new Version ("cppcheck 1.2.3.4" );
266+ Version version2 = new Version ("cppcheck 1.2.3.5" );
267+ assertTrue (version2 .isGreaterThan (version1 ));
268+ assertFalse (version1 .isGreaterThan (version2 ));
269+ }
270+
271+ @ Test
272+ public void testIsGreaterThanWithDefaultRevisionAndPatch () {
273+ Version version1 = new Version ("cppcheck 1.2" );
274+ Version version2 = new Version ("cppcheck 1.2.1" );
275+ Version version3 = new Version ("cppcheck 1.2.0" );
276+ Version version4 = new Version ("cppcheck 1.2.0.1" );
277+ assertTrue (version2 .isGreaterThan (version1 ));
278+ assertTrue (version4 .isGreaterThan (version1 ));
279+ assertFalse (version3 .isGreaterThan (version1 ));
280+ assertTrue (version4 .isGreaterThan (version3 ));
281+ }
282+
283+ @ Test
284+ public void testIsGreaterThanWithSamePatchVersions () {
285+ Version version1 = new Version ("cppcheck 1.2.3.4" );
286+ Version version2 = new Version ("cppcheck 1.2.3.4" );
287+ assertFalse (version2 .isGreaterThan (version1 ));
288+ assertFalse (version1 .isGreaterThan (version2 ));
289+ }
290+
291+ @ Test
292+ public void testIsGreaterThanPremiumVersions () {
293+ Version version1 = new Version ("cppcheck premium 1.2.3.4" );
294+ Version version2 = new Version ("cppcheck premium 1.2.3.5" );
295+ Version version3 = new Version ("cppcheck premium 1.2.3.5" );
296+ assertTrue (version2 .isGreaterThan (version1 ));
297+ assertFalse (version1 .isGreaterThan (version2 ));
298+ assertFalse (version2 .isGreaterThan (version3 ));
299+ assertFalse (version3 .isGreaterThan (version2 ));
300+ }
301+
302+ @ Test
303+ public void testIsGreaterThanPremiumSafetyCerifiedVersions () {
304+ Version version1 = new Version ("cppcheck premium 1.2.3.4s" );
305+ Version version2 = new Version ("cppcheck premium 1.2.3.5s" );
306+ Version version3 = new Version ("cppcheck premium 1.2.3.5s" );
307+ assertTrue (version2 .isGreaterThan (version1 ));
308+ assertFalse (version1 .isGreaterThan (version2 ));
309+ assertFalse (version2 .isGreaterThan (version3 ));
310+ assertFalse (version3 .isGreaterThan (version2 ));
311+ }
312+
313+ @ Test
314+ public void testCompatibility () {
315+ Version version1 = new Version ("cppcheck 1.56" );
316+ Version version2 = new Version ("cppcheck 1.56.0" );
317+ Version version3 = new Version ("cppcheck 1.56.0.0" );
318+ assertTrue (version1 .isCompatible ());
319+ assertTrue (version2 .isCompatible ());
320+ assertTrue (version3 .isCompatible ());
321+ version1 = new Version ("cppcheck premium 1.56" );
322+ version2 = new Version ("cppcheck premium 1.56.0" );
323+ version3 = new Version ("cppcheck premium 1.56.0.0" );
324+ assertTrue (version1 .isCompatible ());
325+ assertTrue (version2 .isCompatible ());
326+ assertTrue (version3 .isCompatible ());
327+ version1 = new Version ("cppcheck premium 1.56s" );
328+ version2 = new Version ("cppcheck premium 1.56.0s" );
329+ version3 = new Version ("cppcheck premium 1.56.0.0s" );
330+ assertTrue (version1 .isCompatible ());
331+ assertTrue (version2 .isCompatible ());
332+ assertTrue (version3 .isCompatible ());
333+ }
334+
39335}
0 commit comments