1
2
3
4 package de.powerstat.validation.values.test;
5
6 import static org.junit.jupiter.api.Assertions.assertAll;
7 import static org.junit.jupiter.api.Assertions.assertEquals;
8 import static org.junit.jupiter.api.Assertions.assertFalse;
9 import static org.junit.jupiter.api.Assertions.assertNotEquals;
10 import static org.junit.jupiter.api.Assertions.assertNotNull;
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.AddressWithWGS84Position;
17 import de.powerstat.validation.values.BFPONumber;
18 import de.powerstat.validation.values.Block;
19 import de.powerstat.validation.values.BuildingName;
20 import de.powerstat.validation.values.BuildingNr;
21 import de.powerstat.validation.values.City;
22 import de.powerstat.validation.values.Country;
23 import de.powerstat.validation.values.Department;
24 import de.powerstat.validation.values.District;
25 import de.powerstat.validation.values.Lines;
26 import de.powerstat.validation.values.Neighbourhood;
27 import de.powerstat.validation.values.PoBoxNumber;
28 import de.powerstat.validation.values.PostalCode;
29 import de.powerstat.validation.values.Province;
30 import de.powerstat.validation.values.Street;
31 import de.powerstat.validation.values.SubBuilding;
32 import de.powerstat.validation.values.WGS84Position;
33 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
34
35
36
37
38 @SuppressFBWarnings({"EC_NULL_ARG", "PRMC_POSSIBLY_REDUNDANT_METHOD_CALLS"})
39 final class AddressWithWGS84PositionTests
40 {
41
42
43
44 private static final String LINEBREAK_UNIX = "\n";
45
46
47
48
49 private static final String LINEBREAK_WIN = "\r\n";
50
51
52
53
54 private static final String DE = "DE";
55
56
57
58
59 private static final String POSTALCODE28307 = "28307";
60
61
62
63
64 private static final String POSTALCODE28359 = "28359";
65
66
67
68
69 private static final String BREMEN = "Bremen";
70
71
72
73
74 private static final String ARBERGER_HEERSTR = "Arberger Heerstr.";
75
76
77
78
79 private static final String BIBLIOTHEKSTRASSE = "Bibliothekstraße";
80
81
82
83
84 private static final String BUILDINGNR92 = "92";
85
86
87
88
89 private static final String BUIDINGNR1 = "1";
90
91
92
93
94 private static final String TEST = "Test";
95
96
97
98
99 private static final String CONSTRUCTOR = "constructor";
100
101
102
103
104 private static final String ADDRESS_WITH_WGS84_POSITION_IS_NULL = "AddressWithWGS84Position is null";
105
106
107
108
109 private static final String WRONG_COUNTRY = "Wrong country";
110
111
112
113
114 private static final String WRONG_POSTAL_CODE = "Wrong postal code";
115
116
117
118
119 private static final String WRONG_CITY = "Wrong city";
120
121
122
123
124 private static final String ILLEGAL_ARGUMENT_EXCEPTION = "Illegal argument exception";
125
126
127
128
129
130 AddressWithWGS84PositionTests()
131 {
132 super();
133 }
134
135
136
137
138
139 @Test
140 void testConstructor1()
141 {
142 final AddressWithWGS84Position address = AddressWithWGS84Position.of(Country.of(AddressWithWGS84PositionTests.DE), PostalCode.of(AddressWithWGS84PositionTests.POSTALCODE28307), City.of(AddressWithWGS84PositionTests.BREMEN), null, null, Street.of(AddressWithWGS84PositionTests.ARBERGER_HEERSTR), BuildingNr.of(AddressWithWGS84PositionTests.BUILDINGNR92), null, null, null, null, null, null, null, null, WGS84Position.of(0.0, 0.0, 0.0));
143 assertAll(CONSTRUCTOR,
144 () -> assertNotNull(address, ADDRESS_WITH_WGS84_POSITION_IS_NULL)
145 );
146 }
147
148
149
150
151
152 @Test
153 void testConstructor2()
154 {
155
156 final AddressWithWGS84Position address = AddressWithWGS84Position.of("DE,28307,Bremen,,,,,,,12345,,,,,,0.0 0.0 0.0");
157 assertAll(CONSTRUCTOR,
158 () -> assertNotNull(address, ADDRESS_WITH_WGS84_POSITION_IS_NULL),
159 () -> assertEquals(AddressWithWGS84PositionTests.DE, address.getCountry().stringValue(), WRONG_COUNTRY),
160 () -> assertEquals(AddressWithWGS84PositionTests.POSTALCODE28307, address.getPostalCode().stringValue(), WRONG_POSTAL_CODE),
161 () -> assertEquals(AddressWithWGS84PositionTests.BREMEN, address.getCity().stringValue(), WRONG_CITY),
162 () -> assertEquals(12345, address.getPoBoxNumber().longValue(), "Wrong pobox number")
163
164
165
166 );
167 }
168
169
170
171
172
173 @Test
174 void testConstructor3()
175 {
176 assertThrows(IllegalArgumentException.class, () ->
177 {
178 AddressWithWGS84Position.of("");
179 }, ILLEGAL_ARGUMENT_EXCEPTION
180 );
181 }
182
183
184
185
186
187 @Test
188 void testConstructor4()
189 {
190 assertThrows(IllegalArgumentException.class, () ->
191 {
192 AddressWithWGS84Position.of("DE,28307,Bremen,,,,,,,12345,,,,,,0.0 0.0 0.0,1");
193 }, ILLEGAL_ARGUMENT_EXCEPTION
194 );
195 }
196
197
198
199
200
201 @Test
202 void testConstructor5()
203 {
204 assertThrows(NullPointerException.class, () ->
205 {
206 AddressWithWGS84Position.of("DE,28307,Bremen,,,,,,,12345");
207 }, "Null pointer exception"
208 );
209 }
210
211
212
213
214
215 @Test
216 void testConstructor6()
217 {
218
219 final AddressWithWGS84Position address = AddressWithWGS84Position.of("DE,28307,Bremen,Bremen,9,,,Home,SubB,,Software Quality,Friendly,Block,1,Lines,0.0 0.0 0.0");
220 assertAll(CONSTRUCTOR,
221 () -> assertNotNull(address, ADDRESS_WITH_WGS84_POSITION_IS_NULL),
222 () -> assertEquals(AddressWithWGS84PositionTests.DE, address.getCountry().stringValue(), WRONG_COUNTRY),
223 () -> assertEquals(AddressWithWGS84PositionTests.POSTALCODE28307, address.getPostalCode().stringValue(), WRONG_POSTAL_CODE),
224 () -> assertEquals(AddressWithWGS84PositionTests.BREMEN, address.getCity().stringValue(), WRONG_CITY)
225
226
227
228
229
230
231
232
233
234 );
235 }
236
237
238
239
240
241 @Test
242 void testGetPosition()
243 {
244 final WGS84Position pos = WGS84Position.of(0.0, 0.0, 0.0);
245 final AddressWithWGS84Position address = AddressWithWGS84Position.of(Country.of(AddressWithWGS84PositionTests.DE), PostalCode.of(AddressWithWGS84PositionTests.POSTALCODE28307), City.of(AddressWithWGS84PositionTests.BREMEN), null, null, Street.of(AddressWithWGS84PositionTests.ARBERGER_HEERSTR), BuildingNr.of(AddressWithWGS84PositionTests.BUILDINGNR92), null, null, null, null, null, null, null, null, pos);
246 final WGS84Position position = address.getPosition();
247 assertEquals(pos, position, "Wrong position");
248 }
249
250
251
252
253
254 @Test
255 void testStringValue()
256 {
257 final WGS84Position pos = WGS84Position.of(0.0, 0.0, 0.0);
258 final AddressWithWGS84Position address = AddressWithWGS84Position.of(Country.of(AddressWithWGS84PositionTests.DE), PostalCode.of(AddressWithWGS84PositionTests.POSTALCODE28307), City.of(AddressWithWGS84PositionTests.BREMEN), null, null, null, null, null, null, PoBoxNumber.of(12345), null, null, null, null, null, pos);
259 assertEquals("\nPostfach 12345\n28307 Bremen\n\n0.0 0.0 0.0", address.stringValue().replace(AddressWithWGS84PositionTests.LINEBREAK_WIN, AddressWithWGS84PositionTests.LINEBREAK_UNIX).replace('\r', '\n'), "AddressWithWGS84Position not as expected");
260 }
261
262
263
264
265
266 @Test
267 void testHashCode()
268 {
269 final AddressWithWGS84Position address1 = AddressWithWGS84Position.of(Country.of(AddressWithWGS84PositionTests.DE), PostalCode.of(AddressWithWGS84PositionTests.POSTALCODE28307), City.of(AddressWithWGS84PositionTests.BREMEN), null, null, Street.of(AddressWithWGS84PositionTests.ARBERGER_HEERSTR), BuildingNr.of(AddressWithWGS84PositionTests.BUILDINGNR92), null, null, null, null, null, null, null, null, WGS84Position.of(0.0, 0.0, 0.0));
270 final AddressWithWGS84Position address2 = AddressWithWGS84Position.of(Country.of(AddressWithWGS84PositionTests.DE), PostalCode.of(AddressWithWGS84PositionTests.POSTALCODE28307), City.of(AddressWithWGS84PositionTests.BREMEN), null, null, Street.of(AddressWithWGS84PositionTests.ARBERGER_HEERSTR), BuildingNr.of(AddressWithWGS84PositionTests.BUILDINGNR92), null, null, null, null, null, null, null, null, WGS84Position.of(0.0, 0.0, 0.0));
271 final AddressWithWGS84Position address3 = AddressWithWGS84Position.of(Country.of(AddressWithWGS84PositionTests.DE), PostalCode.of(AddressWithWGS84PositionTests.POSTALCODE28359), City.of(AddressWithWGS84PositionTests.BREMEN), null, null, Street.of(AddressWithWGS84PositionTests.BIBLIOTHEKSTRASSE), BuildingNr.of(AddressWithWGS84PositionTests.BUIDINGNR1), null, null, null, null, null, null, null, null, WGS84Position.of(0.0, 0.0, 0.0));
272 assertAll("testHashCode",
273 () -> assertEquals(address1.hashCode(), address2.hashCode(), "hashCodes are not equal"),
274 () -> assertNotEquals(address1.hashCode(), address3.hashCode(), "hashCodes are equal")
275 );
276 }
277
278
279
280
281
282 @Test
283 @SuppressWarnings("java:S5785")
284 void testEquals()
285 {
286 final AddressWithWGS84Position address1 = AddressWithWGS84Position.of(Country.of(AddressWithWGS84PositionTests.DE), PostalCode.of(AddressWithWGS84PositionTests.POSTALCODE28307), City.of(AddressWithWGS84PositionTests.BREMEN), null, null, Street.of(AddressWithWGS84PositionTests.ARBERGER_HEERSTR), BuildingNr.of(AddressWithWGS84PositionTests.BUILDINGNR92), null, null, null, null, null, null, null, null, WGS84Position.of(0.0, 0.0, 0.0));
287 final AddressWithWGS84Position address2 = AddressWithWGS84Position.of(Country.of(AddressWithWGS84PositionTests.DE), PostalCode.of(AddressWithWGS84PositionTests.POSTALCODE28307), City.of(AddressWithWGS84PositionTests.BREMEN), null, null, Street.of(AddressWithWGS84PositionTests.ARBERGER_HEERSTR), BuildingNr.of(AddressWithWGS84PositionTests.BUILDINGNR92), null, null, null, null, null, null, null, null, WGS84Position.of(0.0, 0.0, 0.0));
288 final AddressWithWGS84Position address3 = AddressWithWGS84Position.of(Country.of(AddressWithWGS84PositionTests.DE), PostalCode.of(AddressWithWGS84PositionTests.POSTALCODE28359), City.of(AddressWithWGS84PositionTests.BREMEN), null, null, Street.of(AddressWithWGS84PositionTests.BIBLIOTHEKSTRASSE), BuildingNr.of(AddressWithWGS84PositionTests.BUIDINGNR1), null, null, null, null, null, null, null, null, WGS84Position.of(0.0, 0.0, 0.0));
289 final AddressWithWGS84Position address4 = AddressWithWGS84Position.of(Country.of(AddressWithWGS84PositionTests.DE), PostalCode.of(AddressWithWGS84PositionTests.POSTALCODE28307), City.of(AddressWithWGS84PositionTests.BREMEN), null, null, Street.of(AddressWithWGS84PositionTests.ARBERGER_HEERSTR), BuildingNr.of(AddressWithWGS84PositionTests.BUILDINGNR92), null, null, null, null, null, null, null, null, WGS84Position.of(0.0, 0.0, 0.0));
290 assertAll("testEquals",
291 () -> assertTrue(address1.equals(address1), "address11 is not equal"),
292 () -> assertTrue(address1.equals(address2), "address12 are not equal"),
293 () -> assertTrue(address2.equals(address1), "address21 are not equal"),
294 () -> assertTrue(address2.equals(address4), "address24 are not equal"),
295 () -> assertTrue(address1.equals(address4), "address14 are not equal"),
296 () -> assertFalse(address1.equals(address3), "address13 are equal"),
297 () -> assertFalse(address3.equals(address1), "address31 are equal"),
298 () -> assertFalse(address1.equals(null), "address10 is equal")
299 );
300 }
301
302
303
304
305
306 @Test
307 @SuppressWarnings("java:S5785")
308 void testNotEquals()
309 {
310 final AddressWithWGS84Position address1 = AddressWithWGS84Position.of(Country.of(AddressWithWGS84PositionTests.DE), PostalCode.of(AddressWithWGS84PositionTests.POSTALCODE28307), City.of(AddressWithWGS84PositionTests.BREMEN), null, null, Street.of(AddressWithWGS84PositionTests.ARBERGER_HEERSTR), BuildingNr.of(AddressWithWGS84PositionTests.BUILDINGNR92), null, null, null, null, null, null, null, null, WGS84Position.of(0.0, 0.0, 0.0));
311 final AddressWithWGS84Position address2 = AddressWithWGS84Position.of(Country.of(AddressWithWGS84PositionTests.DE), PostalCode.of(AddressWithWGS84PositionTests.POSTALCODE28307), City.of(AddressWithWGS84PositionTests.BREMEN), null, null, Street.of(AddressWithWGS84PositionTests.ARBERGER_HEERSTR), BuildingNr.of(AddressWithWGS84PositionTests.BUILDINGNR92), null, null, null, null, null, null, null, null, WGS84Position.of(1.0, 1.0, 0.0));
312 assertAll("testNotEquals",
313 () -> assertFalse(address1.equals(new Object()), "address1o is equal"),
314 () -> assertFalse(address1.equals(address2), "address12 is equal")
315 );
316 }
317
318
319
320
321
322 @Test
323 void testToString()
324 {
325 final AddressWithWGS84Position address = AddressWithWGS84Position.of(Country.of(AddressWithWGS84PositionTests.DE), PostalCode.of(AddressWithWGS84PositionTests.POSTALCODE28307), City.of(AddressWithWGS84PositionTests.BREMEN), Province.of(AddressWithWGS84PositionTests.TEST), District.of("9"), Street.of(AddressWithWGS84PositionTests.ARBERGER_HEERSTR), BuildingNr.of(AddressWithWGS84PositionTests.BUILDINGNR92), BuildingName.of("TestBuilding"), SubBuilding.of("SubB"), PoBoxNumber.of(4711), Department.of(AddressWithWGS84PositionTests.TEST), Neighbourhood.of("neighbour"), Block.of("blk"), BFPONumber.of(1), Lines.of(AddressWithWGS84PositionTests.TEST), WGS84Position.of(0, 0, 0));
326 assertEquals("AddressWithWGS84Position[position=WGS84Position[latitude=0.0, longitude=0.0, altitude=0.0], Address[country=DE, postalCode=28307, city=Bremen, province=Test, district=9, street=Arberger Heerstr., buildingNr=92, buildingName=TestBuilding, subBuilding=SubB, poBoxNumber=4711, department=Test, neighbourhood=neighbour, block=blk, bFPONumber=1, lines=Test]]", address.toString(), "toString not equal");
327 }
328
329 }