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 static org.mockito.Mockito.spy;
25 import com.google.gson.JsonArray;
26 import com.google.gson.JsonElement;
27 import com.google.gson.JsonObject;
28 import com.google.gson.JsonParser;
29 import java.util.Optional;
30 import org.junit.jupiter.api.Assertions;
31 import org.junit.jupiter.api.Test;
32 import org.mockito.Mockito;
33 import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
34 import org.onap.dcaegen2.services.prh.model.ImmutableConsumerDmaapModel;
35 import reactor.core.publisher.Mono;
36 import reactor.test.StepVerifier;
39 * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 5/8/18
41 class DmaapConsumerJsonParserTest {
43 private JsonParser jsonParser = new JsonParser();
46 void whenPassingCorrectJson_validationNotThrowingAnException() {
48 String message = "[{\"event\": {"
49 + "\"commonEventHeader\": { "
50 + " \"sourceName\":\"NOKQTFCOC540002E\","
51 + " \"nfNamingCode\":\"gNB\" "
53 + "\"pnfRegistrationFields\": {"
54 + " \"vendorName\": \"nokia\","
55 + " \"serialNumber\": \"QTFCOC540002E\","
56 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
57 + " \"modelNumber\": \"3310\","
58 + " \"unitType\": \"type\",\n"
59 + " \"unitFamily\": \"BBU\","
60 + " \"oamV4IpAddress\": \"10.16.123.234\","
61 + " \"softwareVersion\": \"v4.5.0.1\","
62 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
63 + " \"additionalFields\": {\"attachmentPoint\":\"bla-bla-30-3\",\"cvlan\":\"678\",\"svlan\":\"1005\"}"
66 String parsed = "{\"event\": {"
67 + "\"commonEventHeader\": { "
68 + " \"sourceName\":\"NOKQTFCOC540002E\","
69 + " \"nfNamingCode\":\"gNB\" "
71 + "\"pnfRegistrationFields\": {"
72 + " \"vendorName\": \"nokia\","
73 + " \"serialNumber\": \"QTFCOC540002E\","
74 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
75 + " \"modelNumber\": \"3310\","
76 + " \"unitType\": \"type\",\n"
77 + " \"unitFamily\": \"BBU\","
78 + " \"oamV4IpAddress\": \"10.16.123.234\","
79 + " \"softwareVersion\": \"v4.5.0.1\","
80 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
81 + " \"additionalFields\": {\"attachmentPoint\":\"bla-bla-30-3\",\"cvlan\":\"678\",\"svlan\":\"1005\"}"
84 JsonObject jsonObject = new JsonParser().parse("{\n"
85 + " \"attachmentPoint\": \"bla-bla-30-3\",\n"
86 + " \"cvlan\": \"678\",\n"
87 + " \"svlan\": \"1005\"\n"
88 + " }").getAsJsonObject();
90 ConsumerDmaapModel expectedObject = ImmutableConsumerDmaapModel.builder()
91 .ipv4("10.16.123.234")
92 .ipv6("0:0:0:0:0:FFFF:0A10:7BEA")
93 .correlationId("NOKQTFCOC540002E")
94 .serialNumber("QTFCOC540002E")
99 .swVersion("v4.5.0.1")
100 .additionalFields(jsonObject)
103 JsonArray messageAsJsonArray = (JsonArray) jsonParser.parse(message);
106 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
107 JsonElement jsonElement = jsonParser.parse(parsed);
108 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
109 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
111 ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser
112 .getJsonObject(Mono.just((messageAsJsonArray))).blockFirst();
114 Assertions.assertNotNull(consumerDmaapModel);
115 Assertions.assertEquals(expectedObject, consumerDmaapModel);
119 void whenPassingJsonWithoutAdditionalFields_validationNotThrowingAnException() {
121 String message = "[{\"event\": {"
122 + "\"commonEventHeader\": { "
123 + " \"sourceName\":\"NOKQTFCOC540002E\","
124 + " \"nfNamingCode\":\"gNB\" "
126 + "\"pnfRegistrationFields\": {"
127 + " \"vendorName\": \"nokia\","
128 + " \"serialNumber\": \"QTFCOC540002E\","
129 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
130 + " \"modelNumber\": \"3310\","
131 + " \"unitType\": \"type\",\n"
132 + " \"unitFamily\": \"BBU\","
133 + " \"oamV4IpAddress\": \"10.16.123.234\","
134 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
135 + " \"softwareVersion\": \"v4.5.0.1\""
138 String parsed = "{\"event\": {"
139 + "\"commonEventHeader\": { "
140 + " \"sourceName\":\"NOKQTFCOC540002E\","
141 + " \"nfNamingCode\":\"gNB\" "
143 + "\"pnfRegistrationFields\": {"
144 + " \"vendorName\": \"nokia\","
145 + " \"serialNumber\": \"QTFCOC540002E\","
146 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
147 + " \"modelNumber\": \"3310\","
148 + " \"unitType\": \"type\",\n"
149 + " \"unitFamily\": \"BBU\","
150 + " \"oamV4IpAddress\": \"10.16.123.234\","
151 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
152 + " \"softwareVersion\": \"v4.5.0.1\""
155 ConsumerDmaapModel expectedObject = ImmutableConsumerDmaapModel.builder()
156 .correlationId("NOKQTFCOC540002E")
157 .serialNumber("QTFCOC540002E")
158 .ipv4("10.16.123.234")
159 .ipv6("0:0:0:0:0:FFFF:0A10:7BEA")
160 .equipVendor("nokia")
164 .swVersion("v4.5.0.1")
166 JsonArray mesageAsJsonArray = (JsonArray) jsonParser.parse(message);
169 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
170 JsonElement jsonElement = new JsonParser().parse(parsed);
171 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
172 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
173 ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser
174 .getJsonObject(Mono.just((mesageAsJsonArray))).blockFirst();
176 Assertions.assertNotNull(consumerDmaapModel);
177 Assertions.assertEquals(expectedObject, consumerDmaapModel);
181 void whenPassingJsonWithEmptyAdditionalFields_validationNotThrowingAnException() {
183 String message = "[{\"event\": {"
184 + "\"commonEventHeader\": { "
185 + " \"sourceName\":\"NOKQTFCOC540002E\","
186 + " \"nfNamingCode\":\"gNB\" "
188 + "\"pnfRegistrationFields\": {"
189 + " \"vendorName\": \"nokia\","
190 + " \"serialNumber\": \"QTFCOC540002E\","
191 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
192 + " \"modelNumber\": \"3310\","
193 + " \"unitType\": \"type\",\n"
194 + " \"unitFamily\": \"BBU\","
195 + " \"softwareVersion\": \"v4.5.0.1\","
196 + " \"oamV4IpAddress\": \"10.16.123.234\","
197 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
198 + " \"additionalFields\": {}"
201 String parsed = "{\"event\": {"
202 + "\"commonEventHeader\": { "
203 + " \"sourceName\":\"NOKQTFCOC540002E\","
204 + " \"nfNamingCode\":\"gNB\" "
206 + "\"pnfRegistrationFields\": {"
207 + " \"vendorName\": \"nokia\","
208 + " \"serialNumber\": \"QTFCOC540002E\","
209 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
210 + " \"modelNumber\": \"3310\","
211 + " \"unitType\": \"type\",\n"
212 + " \"unitFamily\": \"BBU\","
213 + " \"softwareVersion\": \"v4.5.0.1\","
214 + " \"oamV4IpAddress\": \"10.16.123.234\","
215 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
216 + " \"additionalFields\": {}"
219 ConsumerDmaapModel expectedObject = ImmutableConsumerDmaapModel.builder()
220 .correlationId("NOKQTFCOC540002E")
221 .serialNumber("QTFCOC540002E")
222 .ipv4("10.16.123.234")
223 .ipv6("0:0:0:0:0:FFFF:0A10:7BEA")
224 .equipVendor("nokia")
228 .swVersion("v4.5.0.1")
229 .additionalFields(new JsonObject())
232 JsonArray messageAsJsonArray = (JsonArray) jsonParser.parse(message);
235 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
236 JsonElement jsonElement = jsonParser.parse(parsed);
237 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
238 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
240 ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser
241 .getJsonObject(Mono.just((messageAsJsonArray))).blockFirst();
243 Assertions.assertNotNull(consumerDmaapModel);
244 Assertions.assertEquals(expectedObject, consumerDmaapModel);
248 void whenPassingCorrectJsonWithoutIpv4andIpv6_validationNotThrowingAnException() {
250 String message = "[{\"event\": {"
251 + "\"commonEventHeader\": { "
252 + " \"sourceName\":\"NOKQTFCOC540002E\","
253 + " \"nfNamingCode\":\"gNB\" "
255 + "\"pnfRegistrationFields\": {"
256 + " \"vendorName\": \"nokia\","
257 + " \"serialNumber\": \"QTFCOC540002E\","
258 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
259 + " \"modelNumber\": \"3310\","
260 + " \"unitType\": \"type\",\n"
261 + " \"unitFamily\": \"BBU\","
262 + " \"softwareVersion\": \"v4.5.0.1\","
263 + " \"additionalFields\": {}"
266 String parsed = "{\"event\": {"
267 + "\"commonEventHeader\": { "
268 + " \"sourceName\":\"NOKQTFCOC540002E\","
269 + " \"nfNamingCode\":\"gNB\" "
271 + "\"pnfRegistrationFields\": {"
272 + " \"vendorName\": \"nokia\","
273 + " \"serialNumber\": \"QTFCOC540002E\","
274 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
275 + " \"modelNumber\": \"3310\","
276 + " \"unitType\": \"type\",\n"
277 + " \"unitFamily\": \"BBU\","
278 + " \"softwareVersion\": \"v4.5.0.1\","
279 + " \"additionalFields\": {}"
282 ConsumerDmaapModel expectedObject = ImmutableConsumerDmaapModel.builder()
283 .correlationId("NOKQTFCOC540002E")
284 .serialNumber("QTFCOC540002E")
287 .equipVendor("nokia")
291 .swVersion("v4.5.0.1")
292 .additionalFields(new JsonObject())
295 JsonArray messageAsJsonArray = (JsonArray) jsonParser.parse(message);
298 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
299 JsonElement jsonElement = jsonParser.parse(parsed);
300 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
301 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
303 ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser
304 .getJsonObject(Mono.just((messageAsJsonArray))).blockFirst();
306 Assertions.assertNotNull(consumerDmaapModel);
307 Assertions.assertEquals(expectedObject, consumerDmaapModel);
312 void whenPassingJsonWithoutMandatoryHeaderInformation_validationAddingAnException() {
313 String parsed = "{\"event\": {"
314 + "\"commonEventHeader\": {},"
315 + "\"pnfRegistrationFields\": {"
316 + " \"unitType\": \"AirScale\","
317 + " \"serialNumber\": \"QTFCOC540002E\","
318 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
319 + " \"manufactureDate\": \"1535014037024\","
320 + " \"modelNumber\": \"7BEA\",\n"
321 + " \"lastServiceDate\": \"1535014037024\","
322 + " \"unitFamily\": \"BBU\","
323 + " \"vendorName\": \"Nokia\","
324 + " \"softwareVersion\": \"v4.5.0.1\","
325 + " \"oamV4IpAddress\": \"10.16.123.234\","
326 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
327 + " \"additionalFields\": {}"
330 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
331 JsonElement jsonElement = jsonParser.parse(parsed);
332 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
333 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
334 String incorrectMessage = "[{\"event\": {"
335 + "\"commonEventHeader\": {},"
336 + "\"pnfRegistrationFields\": {"
337 + " \"unitType\": \"AirScale\","
338 + " \"serialNumber\": \"QTFCOC540002E\","
339 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
340 + " \"manufactureDate\": \"1535014037024\","
341 + " \"modelNumber\": \"7BEA\",\n"
342 + " \"lastServiceDate\": \"1535014037024\","
343 + " \"unitFamily\": \"BBU\","
344 + " \"vendorName\": \"Nokia\","
345 + " \"softwareVersion\": \"v4.5.0.1\","
346 + " \"oamV4IpAddress\": \"10.16.123.234\","
347 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
348 + " \"additionalFields\": {}"
351 JsonArray incorrectMessageAsJsonArray = (JsonArray) jsonParser.parse(incorrectMessage);
353 StepVerifier.create(dmaapConsumerJsonParser.getJsonObject(Mono.just(incorrectMessageAsJsonArray)))
354 .expectSubscription().thenRequest(1).verifyComplete();
358 void whenPassingJsonWithoutSourceName_validationAddingAnException() {
359 String parsed = "{\"event\": {"
360 + "\"commonEventHeader\": {},"
361 + "\"pnfRegistrationFields\": {"
362 + " \"unitType\": \"AirScale\","
363 + " \"serialNumber\": \"QTFCOC540002E\","
364 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
365 + " \"manufactureDate\": \"1535014037024\","
366 + " \"modelNumber\": \"7BEA\",\n"
367 + " \"lastServiceDate\": \"1535014037024\","
368 + " \"unitFamily\": \"BBU\","
369 + " \"vendorName\": \"Nokia\","
370 + " \"softwareVersion\": \"v4.5.0.1\","
371 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
372 + " \"additionalFields\": {}"
375 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
376 JsonElement jsonElement = jsonParser.parse(parsed);
377 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
378 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
379 String jsonWithoutSourceName =
381 + "\"commonEventHeader\": {},"
382 + "\"pnfRegistrationFields\": {"
383 + " \"unitType\": \"AirScale\","
384 + " \"serialNumber\": \"QTFCOC540002E\","
385 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
386 + " \"manufactureDate\": \"1535014037024\","
387 + " \"modelNumber\": \"7BEA\",\n"
388 + " \"lastServiceDate\": \"1535014037024\","
389 + " \"unitFamily\": \"BBU\","
390 + " \"vendorName\": \"Nokia\","
391 + " \"softwareVersion\": \"v4.5.0.1\","
392 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
393 + " \"additionalFields\": {}"
396 JsonArray jsonWithoutSourceNameAsJsonArray = (JsonArray) jsonParser.parse(jsonWithoutSourceName);
398 .create(dmaapConsumerJsonParser.getJsonObject(Mono.just(jsonWithoutSourceNameAsJsonArray)))
399 .expectSubscription().thenRequest(1)
405 void whenPassingJsonWithoutSourceNameValue_validationAddingAnException() {
408 + "\"commonEventHeader\": {\"sourceName\": \"\"},"
409 + "\"pnfRegistrationFields\": {"
410 + " \"unitType\": \"AirScale\","
411 + " \"serialNumber\": \"QTFCOC540002E\","
412 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
413 + " \"manufactureDate\": \"1535014037024\","
414 + " \"modelNumber\": \"7BEA\",\n"
415 + " \"lastServiceDate\": \"1535014037024\","
416 + " \"unitFamily\": \"BBU\","
417 + " \"vendorName\": \"Nokia\","
418 + " \"softwareVersion\": \"v4.5.0.1\","
419 + " \"oamV4IpAddress\": \"10.16.123.234\","
420 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
421 + " \"additionalFields\": {}"
424 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
425 JsonElement jsonElement = jsonParser.parse(parsed);
426 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
427 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
428 String jsonWithoutIpInformation =
430 + "\"commonEventHeader\": {\"sourceName\": \"\"},"
431 + "\"pnfRegistrationFields\": {"
432 + " \"unitType\": \"AirScale\","
433 + " \"serialNumber\": \"QTFCOC540002E\","
434 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
435 + " \"manufactureDate\": \"1535014037024\","
436 + " \"modelNumber\": \"7BEA\",\n"
437 + " \"lastServiceDate\": \"1535014037024\","
438 + " \"unitFamily\": \"BBU\","
439 + " \"vendorName\": \"Nokia\","
440 + " \"softwareVersion\": \"v4.5.0.1\","
441 + " \"oamV4IpAddress\": \"10.16.123.234\","
442 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
443 + " \"additionalFields\": {}"
446 JsonArray jsonWithoutIpInformationAsJsonArray = (JsonArray) jsonParser.parse(jsonWithoutIpInformation);
448 StepVerifier.create(dmaapConsumerJsonParser.getJsonObject(Mono.just(jsonWithoutIpInformationAsJsonArray)))
449 .expectSubscription().thenRequest(1).verifyComplete();
453 void whenPassingCorrectJsonWithoutIpv4_validationNotThrowingAnException() {
455 String message = "[{\"event\": {"
456 + "\"commonEventHeader\": { "
457 + " \"sourceName\":\"NOKQTFCOC540002E\","
458 + " \"nfNamingCode\":\"gNB\" "
460 + "\"pnfRegistrationFields\": {"
461 + " \"vendorName\": \"nokia\","
462 + " \"serialNumber\": \"QTFCOC540002E\","
463 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
464 + " \"modelNumber\": \"3310\","
465 + " \"unitType\": \"type\",\n"
466 + " \"unitFamily\": \"BBU\","
467 + " \"softwareVersion\": \"v4.5.0.1\","
468 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\""
471 String parsed = "{\"event\": {"
472 + "\"commonEventHeader\": { "
473 + " \"sourceName\":\"NOKQTFCOC540002E\","
474 + " \"nfNamingCode\":\"gNB\" "
476 + "\"pnfRegistrationFields\": {"
477 + " \"vendorName\": \"nokia\","
478 + " \"serialNumber\": \"QTFCOC540002E\","
479 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
480 + " \"modelNumber\": \"3310\","
481 + " \"unitType\": \"type\",\n"
482 + " \"unitFamily\": \"BBU\","
483 + " \"softwareVersion\": \"v4.5.0.1\","
484 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\""
487 JsonArray messageAsJsonArray = (JsonArray) jsonParser.parse(message);
490 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
491 JsonElement jsonElement = jsonParser.parse(parsed);
492 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
493 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
495 dmaapConsumerJsonParser.getJsonObject(Mono.just((messageAsJsonArray)));
496 ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser.getJsonObject(Mono.just((messageAsJsonArray)))
499 ConsumerDmaapModel expectedObject = ImmutableConsumerDmaapModel.builder()
501 .ipv6("0:0:0:0:0:FFFF:0A10:7BEA")
502 .correlationId("NOKQTFCOC540002E")
503 .serialNumber("QTFCOC540002E")
504 .equipVendor("nokia")
508 .swVersion("v4.5.0.1")
510 Assertions.assertNotNull(consumerDmaapModel);
511 Assertions.assertEquals(expectedObject, consumerDmaapModel);
516 void whenPassingCorrectJsonWithoutIpv6_validationNotThrowingAnException() {
518 String message = "[{\"event\": {"
519 + "\"commonEventHeader\": { "
520 + " \"sourceName\":\"NOKQTFCOC540002E\","
521 + " \"nfNamingCode\":\"gNB\" "
523 + "\"pnfRegistrationFields\": {"
524 + " \"vendorName\": \"nokia\","
525 + " \"serialNumber\": \"QTFCOC540002E\","
526 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
527 + " \"modelNumber\": \"3310\","
528 + " \"unitType\": \"type\",\n"
529 + " \"unitFamily\": \"BBU\","
530 + " \"oamV4IpAddress\": \"10.16.123.234\","
531 + " \"softwareVersion\": \"v4.5.0.1\""
534 String parsed = "{\"event\": {"
535 + "\"commonEventHeader\": { "
536 + " \"sourceName\":\"NOKQTFCOC540002E\","
537 + " \"nfNamingCode\":\"gNB\" "
539 + "\"pnfRegistrationFields\": {"
540 + " \"vendorName\": \"nokia\","
541 + " \"serialNumber\": \"QTFCOC540002E\","
542 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
543 + " \"modelNumber\": \"3310\","
544 + " \"unitType\": \"type\",\n"
545 + " \"unitFamily\": \"BBU\","
546 + " \"oamV4IpAddress\": \"10.16.123.234\","
547 + " \"softwareVersion\": \"v4.5.0.1\""
550 ConsumerDmaapModel expectedObject = ImmutableConsumerDmaapModel.builder()
551 .ipv4("10.16.123.234")
553 .correlationId("NOKQTFCOC540002E")
554 .serialNumber("QTFCOC540002E")
555 .equipVendor("nokia")
559 .swVersion("v4.5.0.1")
562 JsonArray messageAsJsonArray = (JsonArray) jsonParser.parse(message);
565 DmaapConsumerJsonParser dmaapConsumerJsonParser = spy(new DmaapConsumerJsonParser());
566 JsonElement jsonElement = jsonParser.parse(parsed);
567 Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
568 .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
569 ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser.getJsonObject(Mono.just((messageAsJsonArray)))
573 Assertions.assertNotNull(consumerDmaapModel);
574 Assertions.assertEquals(expectedObject, consumerDmaapModel);
579 void whenPassingCorrectJsoArrayWithoutIpv4_validationNotThrowingAnException() {
581 String message = "[{\"event\": {"
582 + "\"commonEventHeader\": { "
583 + " \"sourceName\":\"NOKQTFCOC540002E\","
584 + " \"nfNamingCode\":\"gNB\" "
586 + "\"pnfRegistrationFields\": {"
587 + " \"vendorName\": \"nokia\","
588 + " \"serialNumber\": \"QTFCOC540002E\","
589 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
590 + " \"modelNumber\": \"3310\","
591 + " \"unitType\": \"type\",\n"
592 + " \"unitFamily\": \"BBU\","
593 + " \"softwareVersion\": \"v4.5.0.1\","
594 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
595 + " \"additionalFields\": {}"
598 + "\"commonEventHeader\": { "
599 + " \"sourceName\":\"NOKQTFCOC540002E\","
600 + " \"nfNamingCode\":\"gNB\" "
602 + "\"pnfRegistrationFields\": {"
603 + " \"vendorName\": \"nokia\","
604 + " \"serialNumber\": \"QTFCOC540002E\","
605 + " \"pnfRegistrationFieldsVersion\": \"2.0\","
606 + " \"modelNumber\": \"3310\","
607 + " \"unitType\": \"type\",\n"
608 + " \"unitFamily\": \"BBU\","
609 + " \"softwareVersion\": \"v4.5.0.1\","
610 + " \"oamV6IpAddress\": \"0:0:0:0:0:FFFF:0A10:7BEA\","
611 + " \"additionalFields\": {}"
614 ConsumerDmaapModel expectedObject = ImmutableConsumerDmaapModel.builder()
616 .ipv6("0:0:0:0:0:FFFF:0A10:7BEA")
617 .correlationId("NOKQTFCOC540002E")
618 .serialNumber("QTFCOC540002E")
619 .equipVendor("nokia")
623 .swVersion("v4.5.0.1")
624 .additionalFields(new JsonObject())
627 JsonArray messageAsJsonArray = (JsonArray) jsonParser.parse(message);
630 DmaapConsumerJsonParser dmaapConsumerJsonParser = new DmaapConsumerJsonParser();
633 StepVerifier.create(dmaapConsumerJsonParser.getJsonObject(Mono.just(messageAsJsonArray)))
634 .expectSubscription().expectNext(expectedObject).expectNext(expectedObject).verifyComplete();