1
2
3
4 package de.powerstat.validation.values.test;
5
6
7 import static org.junit.jupiter.api.Assertions.assertAll;
8 import static org.junit.jupiter.api.Assertions.assertEquals;
9 import static org.junit.jupiter.api.Assertions.assertFalse;
10 import static org.junit.jupiter.api.Assertions.assertNotEquals;
11 import static org.junit.jupiter.api.Assertions.assertThrows;
12 import static org.junit.jupiter.api.Assertions.assertTrue;
13
14 import org.junit.jupiter.api.Test;
15
16 import de.powerstat.validation.values.IPV4Mask;
17 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
18
19
20
21
22
23 @SuppressFBWarnings({"EC_NULL_ARG", "RV_NEGATING_RESULT_OF_COMPARETO", "RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT", "SPP_USE_ZERO_WITH_COMPARATOR", "PRMC_POSSIBLY_REDUNDANT_METHOD_CALLS"})
24 final class IPV4MaskTests
25 {
26
27
28
29 private static final String IPMASK_255_0_0_0 = "255.0.0.0";
30
31
32
33
34 private static final String IPMASK_255_255_0_0 = "255.255.0.0";
35
36
37
38
39 private static final String IPMASK_255_255_255_0 = "255.255.255.0";
40
41
42
43
44 private static final String IP255 = "255.255.255.255";
45
46
47
48
49 private static final String IP_ZERO = "0.0.0.0";
50
51
52
53
54 private static final String ILLEGAL_ARGUMENT = "Illegal argument exception expected";
55
56
57
58
59 private static final String INDEX_OUT_OF_BOUNDS = "Index out of bounds exception expected";
60
61
62
63
64 private static final String LENGTH_IS_NOT_EQUAL = "length is not equal";
65
66
67
68
69 private static final String MASK_IS_NOT_EQUAL = "mask is not equal";
70
71
72
73
74
75 IPV4MaskTests()
76 {
77 super();
78 }
79
80
81
82
83
84 @Test
85 void testConstructorFailure0()
86 {
87 assertThrows(IndexOutOfBoundsException.class, () ->
88 {
89 IPV4Mask.of(-1);
90 }, IPV4MaskTests.INDEX_OUT_OF_BOUNDS
91 );
92 }
93
94
95
96
97
98 @Test
99 void testConstructorFailure1()
100 {
101 assertThrows(IndexOutOfBoundsException.class, () ->
102 {
103 IPV4Mask.of(33);
104 }, IPV4MaskTests.INDEX_OUT_OF_BOUNDS
105 );
106 }
107
108
109
110
111
112 @Test
113 void testConstructorFailure2()
114 {
115 assertThrows(IllegalArgumentException.class, () ->
116 {
117 IPV4Mask.of("255.255.129.0");
118 }, IPV4MaskTests.ILLEGAL_ARGUMENT
119 );
120 }
121
122
123
124
125
126 @Test
127 void testConstructorFailure3()
128 {
129 assertThrows(NullPointerException.class, () ->
130 {
131 IPV4Mask.of(null);
132 }, "Null pointer exception expected"
133 );
134 }
135
136
137
138
139
140 @Test
141 void testCnstructorFailure4()
142 {
143 assertThrows(IllegalArgumentException.class, () ->
144 {
145 IPV4Mask.of("255.255.255.255.");
146 }, IPV4MaskTests.ILLEGAL_ARGUMENT
147 );
148 }
149
150
151
152
153
154 @Test
155 void testConstructorFailure5()
156 {
157 assertThrows(IllegalArgumentException.class, () ->
158 {
159 IPV4Mask.of("0.0.0.");
160 }, IPV4MaskTests.ILLEGAL_ARGUMENT
161 );
162 }
163
164
165
166
167
168 @Test
169 void testConstructorSuccess0()
170 {
171 final IPV4Mask mask = IPV4Mask.of(0);
172 assertAll("constructorSuccess0",
173 () -> assertEquals(0, mask.intValue(), IPV4MaskTests.LENGTH_IS_NOT_EQUAL),
174 () -> assertEquals(IPV4MaskTests.IP_ZERO, mask.stringValue(), IPV4MaskTests.MASK_IS_NOT_EQUAL)
175 );
176 }
177
178
179
180
181
182 @Test
183 void testConstructorSuccess1()
184 {
185 final IPV4Mask mask = IPV4Mask.of(32);
186 assertAll("constructorSuccess1",
187 () -> assertEquals(32, mask.intValue(), IPV4MaskTests.LENGTH_IS_NOT_EQUAL),
188 () -> assertEquals(IPV4MaskTests.IP255, mask.stringValue(), IPV4MaskTests.MASK_IS_NOT_EQUAL)
189 );
190 }
191
192
193
194
195
196 @Test
197 void testConstructorSuccess2()
198 {
199 final IPV4Mask mask = IPV4Mask.of(IPV4MaskTests.IP_ZERO);
200 assertAll("constructorSuccess2",
201 () -> assertEquals(0, mask.intValue(), IPV4MaskTests.LENGTH_IS_NOT_EQUAL),
202 () -> assertEquals(IPV4MaskTests.IP_ZERO, mask.stringValue(), IPV4MaskTests.MASK_IS_NOT_EQUAL)
203 );
204 }
205
206
207
208
209
210 @Test
211 void testConstructorSuccess3()
212 {
213 final IPV4Mask mask = IPV4Mask.of(IPV4MaskTests.IP255);
214 assertAll("constructorSuccess3",
215 () -> assertEquals(32, mask.intValue(), IPV4MaskTests.LENGTH_IS_NOT_EQUAL),
216 () -> assertEquals(IPV4MaskTests.IP255, mask.stringValue(), IPV4MaskTests.MASK_IS_NOT_EQUAL)
217 );
218 }
219
220
221
222
223
224 @Test
225 void testConstructorSuccess4()
226 {
227 final IPV4Mask mask = IPV4Mask.of(8);
228 assertAll("constructorSuccess4",
229 () -> assertEquals(8, mask.intValue(), IPV4MaskTests.LENGTH_IS_NOT_EQUAL),
230 () -> assertEquals(IPV4MaskTests.IPMASK_255_0_0_0, mask.stringValue(), IPV4MaskTests.MASK_IS_NOT_EQUAL)
231 );
232 }
233
234
235
236
237
238 @Test
239 void testConstructorSuccess5()
240 {
241 final IPV4Mask mask = IPV4Mask.of(16);
242 assertAll("constructorSuccess5",
243 () -> assertEquals(16, mask.intValue(), IPV4MaskTests.LENGTH_IS_NOT_EQUAL),
244 () -> assertEquals(IPV4MaskTests.IPMASK_255_255_0_0, mask.stringValue(), IPV4MaskTests.MASK_IS_NOT_EQUAL)
245 );
246 }
247
248
249
250
251
252 @Test
253 void testConstructorSuccess6()
254 {
255 final IPV4Mask mask = IPV4Mask.of(24);
256 assertAll("constructorSuccess6",
257 () -> assertEquals(24, mask.intValue(), IPV4MaskTests.LENGTH_IS_NOT_EQUAL),
258 () -> assertEquals(IPV4MaskTests.IPMASK_255_255_255_0, mask.stringValue(), IPV4MaskTests.MASK_IS_NOT_EQUAL)
259 );
260 }
261
262
263
264
265
266 @Test
267 void testConstructorSuccess7()
268 {
269 final IPV4Mask mask = IPV4Mask.of(IPV4MaskTests.IPMASK_255_255_255_0);
270 assertAll("constructorSuccess7",
271 () -> assertEquals(24, mask.intValue(), IPV4MaskTests.LENGTH_IS_NOT_EQUAL),
272 () -> assertEquals(IPV4MaskTests.IPMASK_255_255_255_0, mask.stringValue(), IPV4MaskTests.MASK_IS_NOT_EQUAL)
273 );
274 }
275
276
277
278
279
280 @Test
281 void testConstructorSuccess8()
282 {
283 final IPV4Mask mask = IPV4Mask.of(IPV4MaskTests.IPMASK_255_255_0_0);
284 assertAll("constructorSuccess8",
285 () -> assertEquals(16, mask.intValue(), IPV4MaskTests.LENGTH_IS_NOT_EQUAL),
286 () -> assertEquals(IPV4MaskTests.IPMASK_255_255_0_0, mask.stringValue(), IPV4MaskTests.MASK_IS_NOT_EQUAL)
287 );
288 }
289
290
291
292
293
294 @Test
295 void testConstructorSuccess9()
296 {
297 final IPV4Mask mask = IPV4Mask.of(IPV4MaskTests.IPMASK_255_0_0_0);
298 assertAll("constructorSuccess9",
299 () -> assertEquals(8, mask.intValue(), IPV4MaskTests.LENGTH_IS_NOT_EQUAL),
300 () -> assertEquals(IPV4MaskTests.IPMASK_255_0_0_0, mask.stringValue(), IPV4MaskTests.MASK_IS_NOT_EQUAL)
301 );
302 }
303
304
305
306
307
308 @Test
309 void testConstructorSuccess10()
310 {
311 final IPV4Mask mask = IPV4Mask.of(9);
312 assertAll("constructorSuccess10",
313 () -> assertEquals(9, mask.intValue(), IPV4MaskTests.LENGTH_IS_NOT_EQUAL),
314 () -> assertEquals("255.128.0.0", mask.stringValue(), IPV4MaskTests.MASK_IS_NOT_EQUAL)
315 );
316 }
317
318
319
320
321
322 @Test
323 void testConstructorSuccess11()
324 {
325 final IPV4Mask mask = IPV4Mask.of(17);
326 assertAll("constructorSuccess11",
327 () -> assertEquals(17, mask.intValue(), IPV4MaskTests.LENGTH_IS_NOT_EQUAL),
328 () -> assertEquals("255.255.128.0", mask.stringValue(), IPV4MaskTests.MASK_IS_NOT_EQUAL)
329 );
330 }
331
332
333
334
335
336 @Test
337 void testHashCode()
338 {
339 final IPV4Mask mask1 = IPV4Mask.of(IPV4MaskTests.IPMASK_255_255_255_0);
340 final IPV4Mask mask2 = IPV4Mask.of(IPV4MaskTests.IPMASK_255_255_255_0);
341 final IPV4Mask mask3 = IPV4Mask.of(IPV4MaskTests.IPMASK_255_255_0_0);
342 assertAll("testHashCode",
343 () -> assertEquals(mask1.hashCode(), mask2.hashCode(), "hashCodes are not equal"),
344 () -> assertNotEquals(mask1.hashCode(), mask3.hashCode(), "hashCodes are equal")
345 );
346 }
347
348
349
350
351
352 @Test
353 @SuppressWarnings("java:S5785")
354 void testEquals()
355 {
356 final IPV4Mask mask1 = IPV4Mask.of(IPV4MaskTests.IPMASK_255_255_255_0);
357 final IPV4Mask mask2 = IPV4Mask.of(IPV4MaskTests.IPMASK_255_255_255_0);
358 final IPV4Mask mask3 = IPV4Mask.of(IPV4MaskTests.IPMASK_255_255_0_0);
359 final IPV4Mask mask4 = IPV4Mask.of(IPV4MaskTests.IPMASK_255_255_255_0);
360 assertAll("testEquals",
361 () -> assertTrue(mask1.equals(mask1), "mask11 is not equal"),
362 () -> assertTrue(mask1.equals(mask2), "mask12 are not equal"),
363 () -> assertTrue(mask2.equals(mask1), "mask21 are not equal"),
364 () -> assertTrue(mask2.equals(mask4), "mask24 are not equal"),
365 () -> assertTrue(mask1.equals(mask4), "mask14 are not equal"),
366 () -> assertFalse(mask1.equals(mask3), "mask13 are equal"),
367 () -> assertFalse(mask3.equals(mask1), "mask31 are equal"),
368 () -> assertFalse(mask1.equals(null), "mask10 is equal")
369 );
370 }
371
372
373
374
375
376 @Test
377 void testToString()
378 {
379 final IPV4Mask mask = IPV4Mask.of(IPV4MaskTests.IPMASK_255_255_255_0);
380 assertEquals("IPV4Mask[length=24, mask=255.255.255.0]", mask.toString(), "toString not equal");
381 }
382
383
384
385
386
387 @Test
388 @SuppressWarnings("java:S5785")
389 void testCompareTo()
390 {
391 final IPV4Mask mask1 = IPV4Mask.of(IPV4MaskTests.IPMASK_255_0_0_0);
392 final IPV4Mask mask2 = IPV4Mask.of(IPV4MaskTests.IPMASK_255_0_0_0);
393 final IPV4Mask mask3 = IPV4Mask.of(IPV4MaskTests.IPMASK_255_255_0_0);
394 final IPV4Mask mask4 = IPV4Mask.of(IPV4MaskTests.IPMASK_255_255_255_0);
395 final IPV4Mask mask5 = IPV4Mask.of(IPV4MaskTests.IPMASK_255_0_0_0);
396 assertAll("testCompareTo",
397 () -> assertTrue(mask1.compareTo(mask2) == -mask2.compareTo(mask1), "reflexive1"),
398 () -> assertTrue(mask1.compareTo(mask3) == -mask3.compareTo(mask1), "reflexive2"),
399 () -> assertTrue((mask4.compareTo(mask3) > 0) && (mask3.compareTo(mask1) > 0) && (mask4.compareTo(mask1) > 0), "transitive1"),
400 () -> assertTrue((mask1.compareTo(mask2) == 0) && (Math.abs(mask1.compareTo(mask5)) == Math.abs(mask2.compareTo(mask5))), "sgn1"),
401 () -> assertTrue((mask1.compareTo(mask2) == 0) && mask1.equals(mask2), "equals")
402 );
403 }
404
405 }