2 * ============LICENSE_START=======================================================
3 * PNF-REGISTRATION-HANDLER
4 * ================================================================================
5 * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.dcaegen2.services.prh.service;
23 import com.google.gson.JsonArray;
24 import com.google.gson.JsonElement;
25 import com.google.gson.JsonObject;
26 import com.google.gson.JsonParser;
27 import org.junit.jupiter.api.Assertions;
28 import org.junit.jupiter.api.Test;
29 import org.mockito.Mockito;
30 import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
31 import org.onap.dcaegen2.services.prh.model.ImmutableConsumerDmaapModel;
32 import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.ImmutableMessageRouterSubscribeResponse;
33 import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.MessageRouterSubscribeResponse;
34 import reactor.core.publisher.Mono;
35 import reactor.test.StepVerifier;
37 import java.util.Optional;
39 import static org.mockito.Mockito.spy;
42 * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 5/8/18
44 class DmaapConsumerJsonParserTest {
46 private JsonParser jsonParser = new JsonParser();
49 void whenPassingCorrectJson_validationNotThrowingAnException() {
51 String message = "[{\"event\": {"
52 + "\"commonEventHeader\": { "
53 + " \"sourceName\":\"NOKQTFCOC540002E\","
54 + " \"nfNamingCode\":\"gNB\" "
56 + "\"pnfRegistrationFields\": {"
57 + " \"vendorName\": \"nokia\","
58 + " \"serialNumber\": \"QTFCOC540002E\","
59 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
60 + " \"modelNumber\": \"3310\","
61 + " \"unitType\": \"type\",\n"
62 + " \"unitFamily\": \"BBU\","
63 + " \"oamV4IpAddress\": \"10.16.123.234\","
64 + " \"softwareVersion\": \"v4.5.0.1\","
65 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
66 + " \"additionalFields\": {\"attachmentPoint\":\"bla-bla-30-3\",\"cvlan\":\"678\",\"svlan\":\"1005\"}"
69 String parsed = "{\"event\": {"
70 + "\"commonEventHeader\": { "
71 + " \"sourceName\":\"NOKQTFCOC540002E\","
72 + " \"nfNamingCode\":\"gNB\" "
74 + "\"pnfRegistrationFields\": {"
75 + " \"vendorName\": \"nokia\","
76 + " \"serialNumber\": \"QTFCOC540002E\","
77 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
78 + " \"modelNumber\": \"3310\","
79 + " \"unitType\": \"type\",\n"
80 + " \"unitFamily\": \"BBU\","
81 + " \"oamV4IpAddress\": \"10.16.123.234\","
82 + " \"softwareVersion\": \"v4.5.0.1\","
83 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
84 + " \"additionalFields\": {\"attachmentPoint\":\"bla-bla-30-3\",\"cvlan\":\"678\",\"svlan\":\"1005\"}"
87 JsonObject jsonObject = new JsonParser().parse("{\n"
88 + " \"attachmentPoint\": \"bla-bla-30-3\",\n"
89 + " \"cvlan\": \"678\",\n"
90 + " \"svlan\": \"1005\"\n"
91 + " }").getAsJsonObject();
93 ConsumerDmaapModel expectedObject = ImmutableConsumerDmaapModel.builder()
94 .ipv4("10.16.123.234")
95 .ipv6("0:0:0:0:0:FFFF:0A10:7BEA")
96 .correlationId("NOKQTFCOC540002E")
97 .serialNumber("QTFCOC540002E")
102 .swVersion("v4.5.0.1")
103 .additionalFields(jsonObject)
106 JsonArray messageAsJsonArray = (JsonArray) jsonParser.parse(message);
107 MessageRouterSubscribeResponse response = ImmutableMessageRouterSubscribeResponse.builder().items(messageAsJsonArray).build();
110 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
111 JsonElement jsonElement = jsonParser.parse(parsed);
112 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
113 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
115 ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser
116 .getJsonObject(Mono.just((response))).blockFirst();
118 Assertions.assertNotNull(consumerDmaapModel);
119 Assertions.assertEquals(expectedObject, consumerDmaapModel);
123 void whenPassingJsonWithoutAdditionalFields_validationNotThrowingAnException() {
125 String message = "[{\"event\": {"
126 + "\"commonEventHeader\": { "
127 + " \"sourceName\":\"NOKQTFCOC540002E\","
128 + " \"nfNamingCode\":\"gNB\" "
130 + "\"pnfRegistrationFields\": {"
131 + " \"vendorName\": \"nokia\","
132 + " \"serialNumber\": \"QTFCOC540002E\","
133 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
134 + " \"modelNumber\": \"3310\","
135 + " \"unitType\": \"type\",\n"
136 + " \"unitFamily\": \"BBU\","
137 + " \"oamV4IpAddress\": \"10.16.123.234\","
138 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
139 + " \"softwareVersion\": \"v4.5.0.1\""
142 String parsed = "{\"event\": {"
143 + "\"commonEventHeader\": { "
144 + " \"sourceName\":\"NOKQTFCOC540002E\","
145 + " \"nfNamingCode\":\"gNB\" "
147 + "\"pnfRegistrationFields\": {"
148 + " \"vendorName\": \"nokia\","
149 + " \"serialNumber\": \"QTFCOC540002E\","
150 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
151 + " \"modelNumber\": \"3310\","
152 + " \"unitType\": \"type\",\n"
153 + " \"unitFamily\": \"BBU\","
154 + " \"oamV4IpAddress\": \"10.16.123.234\","
155 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
156 + " \"softwareVersion\": \"v4.5.0.1\""
159 ConsumerDmaapModel expectedObject = ImmutableConsumerDmaapModel.builder()
160 .correlationId("NOKQTFCOC540002E")
161 .serialNumber("QTFCOC540002E")
162 .ipv4("10.16.123.234")
163 .ipv6("0:0:0:0:0:FFFF:0A10:7BEA")
164 .equipVendor("nokia")
168 .swVersion("v4.5.0.1")
170 JsonArray messageAsJsonArray = (JsonArray) jsonParser.parse(message);
171 MessageRouterSubscribeResponse response = ImmutableMessageRouterSubscribeResponse.builder().items(messageAsJsonArray).build();
173 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
174 JsonElement jsonElement = new JsonParser().parse(parsed);
175 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
176 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
177 ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser
178 .getJsonObject(Mono.just((response))).blockFirst();
180 Assertions.assertNotNull(consumerDmaapModel);
181 Assertions.assertEquals(expectedObject, consumerDmaapModel);
185 void whenPassingJsonWithEmptyAdditionalFields_validationNotThrowingAnException() {
187 String message = "[{\"event\": {"
188 + "\"commonEventHeader\": { "
189 + " \"sourceName\":\"NOKQTFCOC540002E\","
190 + " \"nfNamingCode\":\"gNB\" "
192 + "\"pnfRegistrationFields\": {"
193 + " \"vendorName\": \"nokia\","
194 + " \"serialNumber\": \"QTFCOC540002E\","
195 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
196 + " \"modelNumber\": \"3310\","
197 + " \"unitType\": \"type\",\n"
198 + " \"unitFamily\": \"BBU\","
199 + " \"softwareVersion\": \"v4.5.0.1\","
200 + " \"oamV4IpAddress\": \"10.16.123.234\","
201 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
202 + " \"additionalFields\": {}"
205 String parsed = "{\"event\": {"
206 + "\"commonEventHeader\": { "
207 + " \"sourceName\":\"NOKQTFCOC540002E\","
208 + " \"nfNamingCode\":\"gNB\" "
210 + "\"pnfRegistrationFields\": {"
211 + " \"vendorName\": \"nokia\","
212 + " \"serialNumber\": \"QTFCOC540002E\","
213 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
214 + " \"modelNumber\": \"3310\","
215 + " \"unitType\": \"type\",\n"
216 + " \"unitFamily\": \"BBU\","
217 + " \"softwareVersion\": \"v4.5.0.1\","
218 + " \"oamV4IpAddress\": \"10.16.123.234\","
219 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
220 + " \"additionalFields\": {}"
223 ConsumerDmaapModel expectedObject = ImmutableConsumerDmaapModel.builder()
224 .correlationId("NOKQTFCOC540002E")
225 .serialNumber("QTFCOC540002E")
226 .ipv4("10.16.123.234")
227 .ipv6("0:0:0:0:0:FFFF:0A10:7BEA")
228 .equipVendor("nokia")
232 .swVersion("v4.5.0.1")
233 .additionalFields(new JsonObject())
236 JsonArray messageAsJsonArray = (JsonArray) jsonParser.parse(message);
237 MessageRouterSubscribeResponse response = ImmutableMessageRouterSubscribeResponse.builder().items(messageAsJsonArray).build();
240 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
241 JsonElement jsonElement = jsonParser.parse(parsed);
242 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
243 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
245 ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser
246 .getJsonObject(Mono.just((response))).blockFirst();
248 Assertions.assertNotNull(consumerDmaapModel);
249 Assertions.assertEquals(expectedObject, consumerDmaapModel);
253 void whenPassingCorrectJsonWithoutIpv4andIpv6_validationNotThrowingAnException() {
255 String message = "[{\"event\": {"
256 + "\"commonEventHeader\": { "
257 + " \"sourceName\":\"NOKQTFCOC540002E\","
258 + " \"nfNamingCode\":\"gNB\" "
260 + "\"pnfRegistrationFields\": {"
261 + " \"vendorName\": \"nokia\","
262 + " \"serialNumber\": \"QTFCOC540002E\","
263 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
264 + " \"modelNumber\": \"3310\","
265 + " \"unitType\": \"type\",\n"
266 + " \"unitFamily\": \"BBU\","
267 + " \"softwareVersion\": \"v4.5.0.1\","
268 + " \"additionalFields\": {}"
271 String parsed = "{\"event\": {"
272 + "\"commonEventHeader\": { "
273 + " \"sourceName\":\"NOKQTFCOC540002E\","
274 + " \"nfNamingCode\":\"gNB\" "
276 + "\"pnfRegistrationFields\": {"
277 + " \"vendorName\": \"nokia\","
278 + " \"serialNumber\": \"QTFCOC540002E\","
279 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
280 + " \"modelNumber\": \"3310\","
281 + " \"unitType\": \"type\",\n"
282 + " \"unitFamily\": \"BBU\","
283 + " \"softwareVersion\": \"v4.5.0.1\","
284 + " \"additionalFields\": {}"
287 ConsumerDmaapModel expectedObject = ImmutableConsumerDmaapModel.builder()
288 .correlationId("NOKQTFCOC540002E")
289 .serialNumber("QTFCOC540002E")
292 .equipVendor("nokia")
296 .swVersion("v4.5.0.1")
297 .additionalFields(new JsonObject())
300 JsonArray messageAsJsonArray = (JsonArray) jsonParser.parse(message);
301 MessageRouterSubscribeResponse response = ImmutableMessageRouterSubscribeResponse.builder().items(messageAsJsonArray).build();
304 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
305 JsonElement jsonElement = jsonParser.parse(parsed);
306 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
307 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
309 ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser
310 .getJsonObject(Mono.just((response))).blockFirst();
312 Assertions.assertNotNull(consumerDmaapModel);
313 Assertions.assertEquals(expectedObject, consumerDmaapModel);
318 void whenPassingJsonWithoutMandatoryHeaderInformation_validationAddingAnException() {
319 String parsed = "{\"event\": {"
320 + "\"commonEventHeader\": {},"
321 + "\"pnfRegistrationFields\": {"
322 + " \"unitType\": \"AirScale\","
323 + " \"serialNumber\": \"QTFCOC540002E\","
324 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
325 + " \"manufactureDate\": \"1535014037024\","
326 + " \"modelNumber\": \"7BEA\",\n"
327 + " \"lastServiceDate\": \"1535014037024\","
328 + " \"unitFamily\": \"BBU\","
329 + " \"vendorName\": \"Nokia\","
330 + " \"softwareVersion\": \"v4.5.0.1\","
331 + " \"oamV4IpAddress\": \"10.16.123.234\","
332 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
333 + " \"additionalFields\": {}"
336 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
337 JsonElement jsonElement = jsonParser.parse(parsed);
338 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
339 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
340 String incorrectMessage = "[{\"event\": {"
341 + "\"commonEventHeader\": {},"
342 + "\"pnfRegistrationFields\": {"
343 + " \"unitType\": \"AirScale\","
344 + " \"serialNumber\": \"QTFCOC540002E\","
345 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
346 + " \"manufactureDate\": \"1535014037024\","
347 + " \"modelNumber\": \"7BEA\",\n"
348 + " \"lastServiceDate\": \"1535014037024\","
349 + " \"unitFamily\": \"BBU\","
350 + " \"vendorName\": \"Nokia\","
351 + " \"softwareVersion\": \"v4.5.0.1\","
352 + " \"oamV4IpAddress\": \"10.16.123.234\","
353 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
354 + " \"additionalFields\": {}"
357 JsonArray incorrectMessageAsJsonArray = (JsonArray) jsonParser.parse(incorrectMessage);
358 MessageRouterSubscribeResponse response = ImmutableMessageRouterSubscribeResponse.builder().items(incorrectMessageAsJsonArray).build();
360 StepVerifier.create(dmaapConsumerJsonParser.getJsonObject(Mono.just(response)))
361 .expectSubscription().thenRequest(1).verifyComplete();
365 void whenPassingJsonWithoutSourceName_validationAddingAnException() {
366 String parsed = "{\"event\": {"
367 + "\"commonEventHeader\": {},"
368 + "\"pnfRegistrationFields\": {"
369 + " \"unitType\": \"AirScale\","
370 + " \"serialNumber\": \"QTFCOC540002E\","
371 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
372 + " \"manufactureDate\": \"1535014037024\","
373 + " \"modelNumber\": \"7BEA\",\n"
374 + " \"lastServiceDate\": \"1535014037024\","
375 + " \"unitFamily\": \"BBU\","
376 + " \"vendorName\": \"Nokia\","
377 + " \"softwareVersion\": \"v4.5.0.1\","
378 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
379 + " \"additionalFields\": {}"
382 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
383 JsonElement jsonElement = jsonParser.parse(parsed);
384 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
385 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
386 String jsonWithoutSourceName =
388 + "\"commonEventHeader\": {},"
389 + "\"pnfRegistrationFields\": {"
390 + " \"unitType\": \"AirScale\","
391 + " \"serialNumber\": \"QTFCOC540002E\","
392 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
393 + " \"manufactureDate\": \"1535014037024\","
394 + " \"modelNumber\": \"7BEA\",\n"
395 + " \"lastServiceDate\": \"1535014037024\","
396 + " \"unitFamily\": \"BBU\","
397 + " \"vendorName\": \"Nokia\","
398 + " \"softwareVersion\": \"v4.5.0.1\","
399 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
400 + " \"additionalFields\": {}"
403 JsonArray jsonWithoutSourceNameAsJsonArray = (JsonArray) jsonParser.parse(jsonWithoutSourceName);
404 MessageRouterSubscribeResponse response = ImmutableMessageRouterSubscribeResponse.builder().items(jsonWithoutSourceNameAsJsonArray).build();
406 .create(dmaapConsumerJsonParser.getJsonObject(Mono.just(response)))
407 .expectSubscription().thenRequest(1)
413 void whenPassingJsonWithoutSourceNameValue_validationAddingAnException() {
416 + "\"commonEventHeader\": {\"sourceName\": \"\"},"
417 + "\"pnfRegistrationFields\": {"
418 + " \"unitType\": \"AirScale\","
419 + " \"serialNumber\": \"QTFCOC540002E\","
420 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
421 + " \"manufactureDate\": \"1535014037024\","
422 + " \"modelNumber\": \"7BEA\",\n"
423 + " \"lastServiceDate\": \"1535014037024\","
424 + " \"unitFamily\": \"BBU\","
425 + " \"vendorName\": \"Nokia\","
426 + " \"softwareVersion\": \"v4.5.0.1\","
427 + " \"oamV4IpAddress\": \"10.16.123.234\","
428 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
429 + " \"additionalFields\": {}"
432 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
433 JsonElement jsonElement = jsonParser.parse(parsed);
434 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
435 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
436 String jsonWithoutIpInformation =
438 + "\"commonEventHeader\": {\"sourceName\": \"\"},"
439 + "\"pnfRegistrationFields\": {"
440 + " \"unitType\": \"AirScale\","
441 + " \"serialNumber\": \"QTFCOC540002E\","
442 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
443 + " \"manufactureDate\": \"1535014037024\","
444 + " \"modelNumber\": \"7BEA\",\n"
445 + " \"lastServiceDate\": \"1535014037024\","
446 + " \"unitFamily\": \"BBU\","
447 + " \"vendorName\": \"Nokia\","
448 + " \"softwareVersion\": \"v4.5.0.1\","
449 + " \"oamV4IpAddress\": \"10.16.123.234\","
450 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
451 + " \"additionalFields\": {}"
454 JsonArray jsonWithoutIpInformationAsJsonArray = (JsonArray) jsonParser.parse(jsonWithoutIpInformation);
455 MessageRouterSubscribeResponse response = ImmutableMessageRouterSubscribeResponse.builder().items(jsonWithoutIpInformationAsJsonArray).build();
457 StepVerifier.create(dmaapConsumerJsonParser.getJsonObject(Mono.just(response)))
458 .expectSubscription().thenRequest(1).verifyComplete();
462 void whenPassingCorrectJsonWithoutIpv4_validationNotThrowingAnException() {
464 String message = "[{\"event\": {"
465 + "\"commonEventHeader\": { "
466 + " \"sourceName\":\"NOKQTFCOC540002E\","
467 + " \"nfNamingCode\":\"gNB\" "
469 + "\"pnfRegistrationFields\": {"
470 + " \"vendorName\": \"nokia\","
471 + " \"serialNumber\": \"QTFCOC540002E\","
472 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
473 + " \"modelNumber\": \"3310\","
474 + " \"unitType\": \"type\",\n"
475 + " \"unitFamily\": \"BBU\","
476 + " \"softwareVersion\": \"v4.5.0.1\","
477 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\""
480 String parsed = "{\"event\": {"
481 + "\"commonEventHeader\": { "
482 + " \"sourceName\":\"NOKQTFCOC540002E\","
483 + " \"nfNamingCode\":\"gNB\" "
485 + "\"pnfRegistrationFields\": {"
486 + " \"vendorName\": \"nokia\","
487 + " \"serialNumber\": \"QTFCOC540002E\","
488 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
489 + " \"modelNumber\": \"3310\","
490 + " \"unitType\": \"type\",\n"
491 + " \"unitFamily\": \"BBU\","
492 + " \"softwareVersion\": \"v4.5.0.1\","
493 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\""
496 JsonArray messageAsJsonArray = (JsonArray) jsonParser.parse(message);
497 MessageRouterSubscribeResponse response = ImmutableMessageRouterSubscribeResponse.builder().items(messageAsJsonArray).build();
499 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
500 JsonElement jsonElement = jsonParser.parse(parsed);
501 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
502 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
504 dmaapConsumerJsonParser.getJsonObject(Mono.just((response)));
505 ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser.getJsonObject(Mono.just(response))
508 ConsumerDmaapModel expectedObject = ImmutableConsumerDmaapModel.builder()
510 .ipv6("0:0:0:0:0:FFFF:0A10:7BEA")
511 .correlationId("NOKQTFCOC540002E")
512 .serialNumber("QTFCOC540002E")
513 .equipVendor("nokia")
517 .swVersion("v4.5.0.1")
519 Assertions.assertNotNull(consumerDmaapModel);
520 Assertions.assertEquals(expectedObject, consumerDmaapModel);
525 void whenPassingCorrectJsonWithoutIpv6_validationNotThrowingAnException() {
527 String message = "[{\"event\": {"
528 + "\"commonEventHeader\": { "
529 + " \"sourceName\":\"NOKQTFCOC540002E\","
530 + " \"nfNamingCode\":\"gNB\" "
532 + "\"pnfRegistrationFields\": {"
533 + " \"vendorName\": \"nokia\","
534 + " \"serialNumber\": \"QTFCOC540002E\","
535 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
536 + " \"modelNumber\": \"3310\","
537 + " \"unitType\": \"type\",\n"
538 + " \"unitFamily\": \"BBU\","
539 + " \"oamV4IpAddress\": \"10.16.123.234\","
540 + " \"softwareVersion\": \"v4.5.0.1\""
543 String parsed = "{\"event\": {"
544 + "\"commonEventHeader\": { "
545 + " \"sourceName\":\"NOKQTFCOC540002E\","
546 + " \"nfNamingCode\":\"gNB\" "
548 + "\"pnfRegistrationFields\": {"
549 + " \"vendorName\": \"nokia\","
550 + " \"serialNumber\": \"QTFCOC540002E\","
551 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
552 + " \"modelNumber\": \"3310\","
553 + " \"unitType\": \"type\",\n"
554 + " \"unitFamily\": \"BBU\","
555 + " \"oamV4IpAddress\": \"10.16.123.234\","
556 + " \"softwareVersion\": \"v4.5.0.1\""
559 ConsumerDmaapModel expectedObject = ImmutableConsumerDmaapModel.builder()
560 .ipv4("10.16.123.234")
562 .correlationId("NOKQTFCOC540002E")
563 .serialNumber("QTFCOC540002E")
564 .equipVendor("nokia")
568 .swVersion("v4.5.0.1")
571 JsonArray messageAsJsonArray = (JsonArray) jsonParser.parse(message);
572 MessageRouterSubscribeResponse response = ImmutableMessageRouterSubscribeResponse.builder().items(messageAsJsonArray).build();
575 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
576 JsonElement jsonElement = jsonParser.parse(parsed);
577 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
578 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
579 ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser.getJsonObject(Mono.just(response))
583 Assertions.assertNotNull(consumerDmaapModel);
584 Assertions.assertEquals(expectedObject, consumerDmaapModel);
589 void whenPassingCorrectJsoArrayWithoutIpv4_validationNotThrowingAnException() {
591 String message = "[{\"event\": {"
592 + "\"commonEventHeader\": { "
593 + " \"sourceName\":\"NOKQTFCOC540002E\","
594 + " \"nfNamingCode\":\"gNB\" "
596 + "\"pnfRegistrationFields\": {"
597 + " \"vendorName\": \"nokia\","
598 + " \"serialNumber\": \"QTFCOC540002E\","
599 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
600 + " \"modelNumber\": \"3310\","
601 + " \"unitType\": \"type\",\n"
602 + " \"unitFamily\": \"BBU\","
603 + " \"softwareVersion\": \"v4.5.0.1\","
604 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
605 + " \"additionalFields\": {}"
608 + "\"commonEventHeader\": { "
609 + " \"sourceName\":\"NOKQTFCOC540002E\","
610 + " \"nfNamingCode\":\"gNB\" "
612 + "\"pnfRegistrationFields\": {"
613 + " \"vendorName\": \"nokia\","
614 + " \"serialNumber\": \"QTFCOC540002E\","
615 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
616 + " \"modelNumber\": \"3310\","
617 + " \"unitType\": \"type\",\n"
618 + " \"unitFamily\": \"BBU\","
619 + " \"softwareVersion\": \"v4.5.0.1\","
620 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
621 + " \"additionalFields\": {}"
624 ConsumerDmaapModel expectedObject = ImmutableConsumerDmaapModel.builder()
626 .ipv6("0:0:0:0:0:FFFF:0A10:7BEA")
627 .correlationId("NOKQTFCOC540002E")
628 .serialNumber("QTFCOC540002E")
629 .equipVendor("nokia")
633 .swVersion("v4.5.0.1")
634 .additionalFields(new JsonObject())
637 JsonArray messageAsJsonArray = (JsonArray) jsonParser.parse(message);
638 MessageRouterSubscribeResponse response = ImmutableMessageRouterSubscribeResponse.builder().items(messageAsJsonArray).build();
641 DmaapConsumerJsonParser dmaapConsumerJsonParser = new DmaapConsumerJsonParser();
644 StepVerifier.create(dmaapConsumerJsonParser.getJsonObject(Mono.just(response))).expectSubscription().expectNext(expectedObject).expectNext(expectedObject).verifyComplete();