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,326 @@ 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 ());
47+ }
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 ));
38165 }
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 testIsGreaterThanDifferentMinorVersions3 () {
209+ Version version1 = new Version ("cppcheck 24.4.0" );
210+ Version version2 = new Version ("cppcheck 24.10.1" );
211+ assertTrue (version2 .isGreaterThan (version1 ));
212+ assertFalse (version1 .isGreaterThan (version2 ));
213+ }
214+
215+ @ Test
216+ public void testIsGreaterThanPremiumDifferentMinorVersions2 () {
217+ Version version1 = new Version ("cppcheck premium 1.2.6" );
218+ Version version2 = new Version ("cppcheck premium 1.3.0" );
219+ assertTrue (version2 .isGreaterThan (version1 ));
220+ assertFalse (version1 .isGreaterThan (version2 ));
221+ }
222+
223+ @ Test
224+ public void testIsGreaterThanPremiumSafetyCertifiedDifferentMinorVersions2 () {
225+ Version version1 = new Version ("cppcheck premium 1.2.6s" );
226+ Version version2 = new Version ("cppcheck premium 1.3.0s" );
227+ assertTrue (version2 .isGreaterThan (version1 ));
228+ assertFalse (version1 .isGreaterThan (version2 ));
229+ }
230+
231+ @ Test
232+ public void testIsGreaterThanWithDiffrentRevisionVersions () {
233+ Version version1 = new Version ("cppcheck 1.2.3" );
234+ Version version2 = new Version ("cppcheck 1.2.4" );
235+ assertTrue (version2 .isGreaterThan (version1 ));
236+ assertFalse (version1 .isGreaterThan (version2 ));
237+ }
238+
239+ @ Test
240+ public void testIsGreaterThanPremiumWithDiffrentRevisionVersions () {
241+ Version version1 = new Version ("cppcheck premium 1.2.3" );
242+ Version version2 = new Version ("cppcheck premium 1.2.4" );
243+ assertTrue (version2 .isGreaterThan (version1 ));
244+ assertFalse (version1 .isGreaterThan (version2 ));
245+ }
246+
247+ @ Test
248+ public void testIsGreaterThanPremiumSafetyCertifiedWithDiffrentRevisionVersions () {
249+ Version version1 = new Version ("cppcheck premium 1.2.3s" );
250+ Version version2 = new Version ("cppcheck premium 1.2.4s" );
251+ assertTrue (version2 .isGreaterThan (version1 ));
252+ assertFalse (version1 .isGreaterThan (version2 ));
253+ }
254+
255+ @ Test
256+ public void testIsGreaterThanWithSameVersions () {
257+ Version version1 = new Version ("cppcheck 1.2.3" );
258+ Version version2 = new Version ("cppcheck 1.2.3" );
259+ assertFalse (version2 .isGreaterThan (version1 ));
260+ assertFalse (version1 .isGreaterThan (version2 ));
261+ }
262+
263+ @ Test
264+ public void testIsGreaterThanWithDiffrentRevisionVersions2 () {
265+ Version version1 = new Version ("cppcheck 1.2.3.5" );
266+ Version version2 = new Version ("cppcheck 1.2.4.5" );
267+ assertTrue (version2 .isGreaterThan (version1 ));
268+ assertFalse (version1 .isGreaterThan (version2 ));
269+ }
270+
271+ @ Test
272+ public void testIsGreaterThanWithDifferentPatchVersions () {
273+ Version version1 = new Version ("cppcheck 1.2.3.4" );
274+ Version version2 = new Version ("cppcheck 1.2.3.5" );
275+ assertTrue (version2 .isGreaterThan (version1 ));
276+ assertFalse (version1 .isGreaterThan (version2 ));
277+ }
278+
279+ @ Test
280+ public void testIsGreaterThanWithDefaultRevisionAndPatch () {
281+ Version version1 = new Version ("cppcheck 1.2" );
282+ Version version2 = new Version ("cppcheck 1.2.1" );
283+ Version version3 = new Version ("cppcheck 1.2.0" );
284+ Version version4 = new Version ("cppcheck 1.2.0.1" );
285+ assertTrue (version2 .isGreaterThan (version1 ));
286+ assertTrue (version4 .isGreaterThan (version1 ));
287+ assertFalse (version3 .isGreaterThan (version1 ));
288+ assertTrue (version4 .isGreaterThan (version3 ));
289+ }
290+
291+ @ Test
292+ public void testIsGreaterThanWithSamePatchVersions () {
293+ Version version1 = new Version ("cppcheck 1.2.3.4" );
294+ Version version2 = new Version ("cppcheck 1.2.3.4" );
295+ assertFalse (version2 .isGreaterThan (version1 ));
296+ assertFalse (version1 .isGreaterThan (version2 ));
297+ }
298+
299+ @ Test
300+ public void testIsGreaterThanPremiumVersions () {
301+ Version version1 = new Version ("cppcheck premium 1.2.3.4" );
302+ Version version2 = new Version ("cppcheck premium 1.2.3.5" );
303+ Version version3 = new Version ("cppcheck premium 1.2.3.5" );
304+ assertTrue (version2 .isGreaterThan (version1 ));
305+ assertFalse (version1 .isGreaterThan (version2 ));
306+ assertFalse (version2 .isGreaterThan (version3 ));
307+ assertFalse (version3 .isGreaterThan (version2 ));
308+ }
309+
310+ @ Test
311+ public void testIsGreaterThanPremiumSafetyCerifiedVersions () {
312+ Version version1 = new Version ("cppcheck premium 1.2.3.4s" );
313+ Version version2 = new Version ("cppcheck premium 1.2.3.5s" );
314+ Version version3 = new Version ("cppcheck premium 1.2.3.5s" );
315+ assertTrue (version2 .isGreaterThan (version1 ));
316+ assertFalse (version1 .isGreaterThan (version2 ));
317+ assertFalse (version2 .isGreaterThan (version3 ));
318+ assertFalse (version3 .isGreaterThan (version2 ));
319+ }
320+
321+ @ Test
322+ public void testCompatibility () {
323+ Version version1 = new Version ("cppcheck 1.56" );
324+ Version version2 = new Version ("cppcheck 1.56.0" );
325+ Version version3 = new Version ("cppcheck 1.56.0.0" );
326+ assertTrue (version1 .isCompatible ());
327+ assertTrue (version2 .isCompatible ());
328+ assertTrue (version3 .isCompatible ());
329+ version1 = new Version ("cppcheck premium 1.56" );
330+ version2 = new Version ("cppcheck premium 1.56.0" );
331+ version3 = new Version ("cppcheck premium 1.56.0.0" );
332+ assertTrue (version1 .isCompatible ());
333+ assertTrue (version2 .isCompatible ());
334+ assertTrue (version3 .isCompatible ());
335+ version1 = new Version ("cppcheck premium 1.56s" );
336+ version2 = new Version ("cppcheck premium 1.56.0s" );
337+ version3 = new Version ("cppcheck premium 1.56.0.0s" );
338+ assertTrue (version1 .isCompatible ());
339+ assertTrue (version2 .isCompatible ());
340+ assertTrue (version3 .isCompatible ());
341+ }
342+
39343}
0 commit comments