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.IPV6Mask;
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 IPV6MaskTests
25 {
26
27
28
29 private static final String LENGTH_IS_NOT_EQUAL = "length is not equal";
30
31
32
33
34 private static final String INDEX_OUT_OF_BOUNDS = "Index out of bounds exception expected";
35
36
37
38
39 private static final String CONSTRUCTOR_SUCCESS = "constructorSuccess";
40
41
42
43
44
45 IPV6MaskTests()
46 {
47 super();
48 }
49
50
51
52
53
54 @Test
55 void testConstructorFailure0()
56 {
57 assertThrows(IndexOutOfBoundsException.class, () ->
58 {
59 IPV6Mask.of(-1);
60 }, IPV6MaskTests.INDEX_OUT_OF_BOUNDS
61 );
62 }
63
64
65
66
67
68 @Test
69 void testConstructorFailure1()
70 {
71 assertThrows(IndexOutOfBoundsException.class, () ->
72 {
73 IPV6Mask.of(129);
74 }, IPV6MaskTests.INDEX_OUT_OF_BOUNDS
75 );
76 }
77
78
79
80
81
82 @Test
83 void testConstructorSuccess0()
84 {
85 final IPV6Mask mask = IPV6Mask.of(0);
86 assertAll("constructorSuccess0",
87 () -> assertEquals(0, mask.intValue(), IPV6MaskTests.LENGTH_IS_NOT_EQUAL)
88 );
89 }
90
91
92
93
94
95 @Test
96 void testConstructorSuccess1()
97 {
98 final IPV6Mask mask = IPV6Mask.of(128);
99 assertAll(CONSTRUCTOR_SUCCESS,
100 () -> assertEquals(128, mask.intValue(), IPV6MaskTests.LENGTH_IS_NOT_EQUAL)
101 );
102 }
103
104
105
106
107
108 @Test
109 void testConstructorSuccess2()
110 {
111 final IPV6Mask mask = IPV6Mask.of("128");
112 assertAll(CONSTRUCTOR_SUCCESS,
113 () -> assertEquals(128, mask.intValue(), IPV6MaskTests.LENGTH_IS_NOT_EQUAL)
114 );
115 }
116
117
118
119
120
121 @Test
122 void testIntValue()
123 {
124 final IPV6Mask mask = IPV6Mask.of(0);
125 assertEquals(0, mask.intValue(), IPV6MaskTests.LENGTH_IS_NOT_EQUAL);
126 }
127
128
129
130
131
132 @Test
133 void testStringValue()
134 {
135 final IPV6Mask mask = IPV6Mask.of(0);
136 assertEquals("0", mask.stringValue(), IPV6MaskTests.LENGTH_IS_NOT_EQUAL);
137 }
138
139
140
141
142
143 @Test
144 void testHashCode()
145 {
146 final IPV6Mask mask1 = IPV6Mask.of(112);
147 final IPV6Mask mask2 = IPV6Mask.of(112);
148 final IPV6Mask mask3 = IPV6Mask.of(96);
149 assertAll("testHashCode",
150 () -> assertEquals(mask1.hashCode(), mask2.hashCode(), "hashCodes are not equal"),
151 () -> assertNotEquals(mask1.hashCode(), mask3.hashCode(), "hashCodes are equal")
152 );
153 }
154
155
156
157
158
159 @Test
160 @SuppressWarnings("java:S5785")
161 void testEquals()
162 {
163 final IPV6Mask mask1 = IPV6Mask.of(112);
164 final IPV6Mask mask2 = IPV6Mask.of(112);
165 final IPV6Mask mask3 = IPV6Mask.of(96);
166 final IPV6Mask mask4 = IPV6Mask.of(112);
167 assertAll("testEquals",
168 () -> assertTrue(mask1.equals(mask1), "mask11 is not equal"),
169 () -> assertTrue(mask1.equals(mask2), "mask12 are not equal"),
170 () -> assertTrue(mask2.equals(mask1), "mask21 are not equal"),
171 () -> assertTrue(mask2.equals(mask4), "mask24 are not equal"),
172 () -> assertTrue(mask1.equals(mask4), "mask14 are not equal"),
173 () -> assertFalse(mask1.equals(mask3), "mask13 are equal"),
174 () -> assertFalse(mask3.equals(mask1), "mask31 are equal"),
175 () -> assertFalse(mask1.equals(null), "mask10 is equal")
176 );
177 }
178
179
180
181
182
183 @Test
184 void testToString()
185 {
186 final IPV6Mask mask = IPV6Mask.of(112);
187 assertEquals("IPV6Mask[length=112]", mask.toString(), "toString not equal");
188 }
189
190
191
192
193
194 @Test
195 @SuppressWarnings("java:S5785")
196 void testCompareTo()
197 {
198 final IPV6Mask mask1 = IPV6Mask.of(16);
199 final IPV6Mask mask2 = IPV6Mask.of(16);
200 final IPV6Mask mask3 = IPV6Mask.of(32);
201 final IPV6Mask mask4 = IPV6Mask.of(48);
202 final IPV6Mask mask5 = IPV6Mask.of(16);
203 assertAll("testCompareTo",
204 () -> assertTrue(mask1.compareTo(mask2) == -mask2.compareTo(mask1), "reflexive1"),
205 () -> assertTrue(mask1.compareTo(mask3) == -mask3.compareTo(mask1), "reflexive2"),
206 () -> assertTrue((mask4.compareTo(mask3) > 0) && (mask3.compareTo(mask1) > 0) && (mask4.compareTo(mask1) > 0), "transitive1"),
207 () -> assertTrue((mask1.compareTo(mask2) == 0) && (Math.abs(mask1.compareTo(mask5)) == Math.abs(mask2.compareTo(mask5))), "sgn1"),
208 () -> assertTrue((mask1.compareTo(mask2) == 0) && mask1.equals(mask2), "equals")
209 );
210 }
211
212 }