Pārlūkot izejas kodu

Rewrite unit tests for Version

Change-Id: I7b2c4e2bbcafa5da5de9f15b97b3c444f48ef196
Reviewed-on: http://gerrit.dmdirc.com/2432
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
tags/0.7rc1
Chris Smith 12 gadus atpakaļ
vecāks
revīzija
a230223cde
1 mainītis faili ar 242 papildinājumiem un 46 dzēšanām
  1. 242
    46
      test/com/dmdirc/updater/VersionTest.java

+ 242
- 46
test/com/dmdirc/updater/VersionTest.java Parādīt failu

@@ -22,58 +22,254 @@
22 22
 
23 23
 package com.dmdirc.updater;
24 24
 
25
-import java.util.Arrays;
26
-import java.util.List;
27
-
28 25
 import org.junit.Test;
29
-import org.junit.runner.RunWith;
30
-import org.junit.runners.Parameterized;
31 26
 
32 27
 import static org.junit.Assert.*;
33 28
 
34
-@RunWith(Parameterized.class)
35 29
 public class VersionTest {
36 30
 
37
-    private final Version v1, v2;
38
-    private final int min, max;
39
-
40
-    public VersionTest(Version v1, Version v2, int max, int min) {
41
-        this.v1 = v1;
42
-        this.v2 = v2;
43
-        this.min = min;
44
-        this.max = max;
45
-    }
46
-
47
-    @Test
48
-    public void testData() {
49
-        assertTrue(max + " > " + v1 + ".compareTo(" + v2 + ")", max > v1.compareTo(v2));
50
-        assertTrue(min + " < " + v1 + ".compareTo(" + v2 + ")", min < v1.compareTo(v2));
51
-    }
52
-
53
-    @Parameterized.Parameters
54
-    public static List<Object[]> data() {
55
-        return Arrays.asList(new Object[][]{
56
-            {new Version(1), new Version(2), 0, Integer.MIN_VALUE},
57
-            {new Version(1), new Version(2000), 0, Integer.MIN_VALUE},
58
-            {new Version(2), new Version(1), Integer.MAX_VALUE, 0},
59
-            {new Version(1), new Version(1), 1, -1},
60
-            {new Version(0), new Version(0), 1, -1},
61
-            {new Version(1), new Version("0.6"), 0, Integer.MIN_VALUE},
62
-            {new Version("0.6"), new Version("0.6"), 1, -1},
63
-            {new Version("0.6"), new Version("0.6.3"), 0, Integer.MIN_VALUE},
64
-            {new Version("0.6-149-gaaaaaaa"), new Version("0.6.3"), 0, Integer.MIN_VALUE},
65
-            {new Version("0.6-149-gaaaaaaa"), new Version("0.6.3-149-gaaaaaaa"), 0, Integer.MIN_VALUE},
66
-            {new Version("0.6.3"), new Version("0.6.3-149-gaaaaaaa"), 0, Integer.MIN_VALUE},
67
-            {new Version("0.6.3a1"), new Version("0.6.3"), 0, Integer.MIN_VALUE},
68
-            {new Version("0.6.3b1"), new Version("0.6.3"), 0, Integer.MIN_VALUE},
69
-            {new Version("0.6.3rc1"), new Version("0.6.3"), 0, Integer.MIN_VALUE},
70
-            {new Version("0.6.3m1"), new Version("0.6.3"), 0, Integer.MIN_VALUE},
71
-            {new Version("0.6.3m1b1"), new Version("0.6.3"), 0, Integer.MIN_VALUE},
72
-            {new Version("0.6.3m1a1"), new Version("0.6.3m1b1"), 0, Integer.MIN_VALUE},
73
-            {new Version("0.6.3m1a1"), new Version("0.6.3m1a1-149-gaaaaaaa"), 0, Integer.MIN_VALUE},
74
-            {new Version("0.6.3-148-gaaaaaaa"), new Version("0.6.3-149-gaaaaaaa"), 0, Integer.MIN_VALUE},
75
-            {new Version("0.6.3-148-gaaaaaaa"), new Version("0.6.3-148-gaaaaaaa"), 1, -1},
76
-        });
31
+    @Test
32
+    public void testConstructorWithNoArgsCreatesInvalidVersion() {
33
+        assertFalse(new Version().isValid());
34
+    }
35
+
36
+    @Test
37
+    public void testToStringWhenGivenInt() {
38
+        assertEquals("123", new Version(123).toString());
39
+    }
40
+
41
+    @Test
42
+    public void testIsValidWhenGivenInt() {
43
+        assertTrue(new Version(123).isValid());
44
+    }
45
+
46
+    @Test
47
+    public void testToStringWhenGivenIntAsString() {
48
+        assertEquals("123", new Version("123").toString());
49
+    }
50
+
51
+    @Test
52
+    public void testIsValidWhenGivenIntAsString() {
53
+        assertTrue(new Version("123").isValid());
54
+    }
55
+
56
+    @Test
57
+    public void testToStringWhenGivenVersionString() {
58
+        assertEquals("0.1.2rc3", new Version("0.1.2rc3").toString());
59
+    }
60
+
61
+    @Test
62
+    public void testIsValidWhenGivenVersionString() {
63
+        assertTrue(new Version("0.1.2rc3").isValid());
64
+    }
65
+
66
+    @Test
67
+    public void testIsInvalidWhenGivenOtherString() {
68
+        assertFalse(new Version("Hello!").isValid());
69
+    }
70
+
71
+    @Test
72
+    public void testIsInvalidWhenGivenInvalidGitHash() {
73
+        assertFalse(new Version("0.1.3-12-gABCDEFG").isValid());
74
+        assertFalse(new Version("0.1.3-12-g123").isValid());
75
+        assertFalse(new Version("0.1.3-12-g123123123").isValid());
76
+    }
77
+
78
+    @Test
79
+    public void testInvalidVersionsAreEqual() {
80
+        assertEquals(0, new Version().compareTo(new Version()));
81
+    }
82
+
83
+    @Test
84
+    public void testEqualNumericalVersionsAreEqual() {
85
+        assertEquals(0, new Version(123).compareTo(new Version(123)));
86
+    }
87
+
88
+    @Test
89
+    public void testEqualNumericalAndStringVersionsAreEqual() {
90
+        assertEquals(0, new Version(123).compareTo(new Version("123")));
91
+    }
92
+
93
+    @Test
94
+    public void testStringVersionsAreNewerThanNumericalVersions() {
95
+        assertTrue(new Version(123).compareTo(new Version("0.1")) < 0);
96
+    }
97
+
98
+    @Test
99
+    public void testNumericalVersionsAreOlderThanStringVersions() {
100
+        assertTrue(new Version("0.1").compareTo(new Version(123)) > 0);
101
+    }
102
+
103
+    @Test
104
+    public void testGreaterNumericalVersionIsNewer() {
105
+        assertTrue(new Version(123).compareTo(new Version(124)) < 0);
106
+    }
107
+
108
+    @Test
109
+    public void testLesserNumericalVersionIsOlder() {
110
+        assertTrue(new Version(124).compareTo(new Version(123)) > 0);
111
+    }
112
+
113
+    @Test
114
+    public void testEqualStringVersionsAreEqual() {
115
+        assertEquals(0, new Version("1.2.3").compareTo(new Version("1.2.3")));
116
+    }
117
+
118
+    @Test
119
+    public void testLongerStringVersionsAreNewer() {
120
+        assertTrue(new Version("1.2.3").compareTo(new Version("1.2.3.1")) < 0);
121
+    }
122
+
123
+    @Test
124
+    public void testHigherStringVersionsAreNewer() {
125
+        assertTrue(new Version("1.2.3").compareTo(new Version("1.2.4")) < 0);
126
+        assertTrue(new Version("1.2.3").compareTo(new Version("1.3.3")) < 0);
127
+        assertTrue(new Version("1.2.3").compareTo(new Version("2.2.3")) < 0);
128
+        assertTrue(new Version("1.2.3").compareTo(new Version("2.0")) < 0);
129
+    }
130
+
131
+    @Test
132
+    public void testHigherStringVersionsAreNewerWithSuffixes() {
133
+        assertTrue(new Version("1.2.3rc2").compareTo(new Version("1.2.4a1")) < 0);
134
+        assertTrue(new Version("1.2.3b1").compareTo(new Version("1.3.3m8")) < 0);
135
+        assertTrue(new Version("1.2.3m8").compareTo(new Version("2.2.3rc2")) < 0);
136
+        assertTrue(new Version("1.2.3a6").compareTo(new Version("2.0b4")) < 0);
137
+    }
138
+
139
+    @Test
140
+    public void testShorterStringVersionsAreOlder() {
141
+        assertTrue(new Version("1.2.3.1").compareTo(new Version("1.2.3")) > 0);
142
+    }
143
+
144
+    @Test
145
+    public void testLowerStringVersionsAreOlder() {
146
+        assertTrue(new Version("1.2.4").compareTo(new Version("1.2.3")) > 0);
147
+        assertTrue(new Version("1.3.3").compareTo(new Version("1.2.3")) > 0);
148
+        assertTrue(new Version("2.2.3").compareTo(new Version("1.2.3")) > 0);
149
+        assertTrue(new Version("2.0").compareTo(new Version("1.2.3")) > 0);
150
+    }
151
+
152
+    @Test
153
+    public void testLowerStringVersionsAreOlderWithSuffixes() {
154
+        assertTrue(new Version("1.2.4a1").compareTo(new Version("1.2.3rc2")) > 0);
155
+        assertTrue(new Version("1.3.3m8").compareTo(new Version("1.2.3b1")) > 0);
156
+        assertTrue(new Version("2.2.3rc2").compareTo(new Version("1.2.3m8")) > 0);
157
+        assertTrue(new Version("2.0b4").compareTo(new Version("1.2.3a6")) > 0);
158
+    }
159
+
160
+    @Test
161
+    public void testHigherGitSuffixesAreNewer() {
162
+        assertTrue(new Version("1.2-17-gabcdeff").compareTo(new Version("1.2-18-gabcdeff")) < 0);
163
+    }
164
+
165
+    @Test
166
+    public void testLowerGitSuffixesAreOlder() {
167
+        assertTrue(new Version("1.2-18-gabcdeff").compareTo(new Version("1.2-17-gabcdeff")) > 0);
168
+    }
169
+
170
+    @Test
171
+    public void testEqualVersionsWithDifferentGitHashesAreEqual() {
172
+        assertEquals(0, new Version("1.2-17-g1234567").compareTo(new Version("1.2-17-gabcdeff")));
173
+    }
174
+
175
+    @Test
176
+    public void testHigherSuffixesAreNewer() {
177
+        assertTrue(new Version("1.2.3rc1").compareTo(new Version("1.2.3rc2")) < 0);
178
+    }
179
+
180
+    @Test
181
+    public void testBetasAreNewerThanAlphas() {
182
+        assertTrue(new Version("1.2.3a8").compareTo(new Version("1.2.3b5")) < 0);
183
+    }
184
+
185
+    @Test
186
+    public void testAlphasAreNewerThanMilestones() {
187
+        assertTrue(new Version("1.2.3m8").compareTo(new Version("1.2.3a1")) < 0);
188
+    }
189
+
190
+    @Test
191
+    public void testReleaseCandidatesAreNewerThanBetas() {
192
+        assertTrue(new Version("1.2.3b8").compareTo(new Version("1.2.3rc1")) < 0);
193
+    }
194
+
195
+    @Test
196
+    public void testReleasesAreNewerThanReleaseCandidates() {
197
+        assertTrue(new Version("1.2.3rc8").compareTo(new Version("1.2.3")) < 0);
198
+    }
199
+
200
+    @Test
201
+    public void testHigherSuffixesAreNewerWithMilestones() {
202
+        assertTrue(new Version("1.2.3m1rc1").compareTo(new Version("1.2.3m1rc2")) < 0);
203
+    }
204
+
205
+    @Test
206
+    public void testBetasAreNewerThanAlphasWithMilestones() {
207
+        assertTrue(new Version("1.2.3m1a8").compareTo(new Version("1.2.3m1b5")) < 0);
208
+    }
209
+
210
+    @Test
211
+    public void testReleaseCandidatesAreNewerThanBetasWithMilestones() {
212
+        assertTrue(new Version("1.2.3m1b8").compareTo(new Version("1.2.3m1rc1")) < 0);
213
+    }
214
+
215
+    @Test
216
+    public void testReleasesAreNewerThanReleaseCandidatesWithMilestones() {
217
+        assertTrue(new Version("1.2.3m1rc8").compareTo(new Version("1.2.3m1")) < 0);
218
+    }
219
+
220
+    @Test
221
+    public void testLowerSuffixesAreOlder() {
222
+        assertTrue(new Version("1.2.3rc2").compareTo(new Version("1.2.3rc1")) > 0);
223
+    }
224
+
225
+    @Test
226
+    public void testAlphasAreOlderThanBetas() {
227
+        assertTrue(new Version("1.2.3b5").compareTo(new Version("1.2.3a8")) > 0);
228
+    }
229
+
230
+    @Test
231
+    public void testMilestonesAreOlderThanAlphas() {
232
+        assertTrue(new Version("1.2.3a1").compareTo(new Version("1.2.3m8")) > 0);
233
+    }
234
+
235
+    @Test
236
+    public void testBetasAreOlderThanReleaseCandidates() {
237
+        assertTrue(new Version("1.2.3rc1").compareTo(new Version("1.2.3b8")) > 0);
238
+    }
239
+
240
+    @Test
241
+    public void testReleaseCandidatesAreOlderThanReleases() {
242
+        assertTrue(new Version("1.2.3").compareTo(new Version("1.2.3rc8")) > 0);
243
+    }
244
+
245
+    @Test
246
+    public void testLowerSuffixesAreOlderWithMilestones() {
247
+        assertTrue(new Version("1.2.3m1rc2").compareTo(new Version("1.2.3m1rc1")) > 0);
248
+    }
249
+
250
+    @Test
251
+    public void testAlphasAreOlderThanBetasWithMilestones() {
252
+        assertTrue(new Version("1.2.3m1b5").compareTo(new Version("1.2.3m1a8")) > 0);
253
+    }
254
+
255
+    @Test
256
+    public void testBetasAreOlderThanReleaseCandidatesWithMilestones() {
257
+        assertTrue(new Version("1.2.3m1rc1").compareTo(new Version("1.2.3m1b8")) > 0);
258
+    }
259
+
260
+    @Test
261
+    public void testReleaseCandidatesAreOlderThanReleasesWithMilestones() {
262
+        assertTrue(new Version("1.2.3m1").compareTo(new Version("1.2.3m1rc8")) > 0);
263
+    }
264
+
265
+    @Test
266
+    public void testHashCodesEqualWhenIntVersionsEqual() {
267
+        assertEquals(new Version(1).hashCode(), new Version(1).hashCode());
268
+    }
269
+
270
+    @Test
271
+    public void testHashCodesEqualWhenStringVersionsEqual() {
272
+        assertEquals(new Version("0.1").hashCode(), new Version("0.1").hashCode());
77 273
     }
78 274
 
79 275
 }

Notiek ielāde…
Atcelt
Saglabāt