bug fixing with reading dmaap message 97/72097/1
authorLukasz Muszkieta <lukasz.muszkieta@nokia.com>
Wed, 7 Nov 2018 16:46:59 +0000 (17:46 +0100)
committerLukasz Muszkieta <lukasz.muszkieta@nokia.com>
Wed, 7 Nov 2018 16:46:59 +0000 (17:46 +0100)
Change-Id: I259337e866d1b401b574ba427219157dfc4987af
Issue-ID: SO-1191
Signed-off-by: Lukasz Muszkieta <lukasz.muszkieta@nokia.com>
bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/dmaap/JsonUtilForCorrelationId.java
bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/dmaap/PnfEventReadyDmaapClient.java
bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/dmaap/JsonUtilForCorrelationIdTest.java
bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/dmaap/PnfEventReadyDmaapClientTest.java

index 90b48ab..159298b 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Copyright (C) 2018 Nokia.
+ * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
@@ -31,41 +33,32 @@ import java.util.Spliterator;
 
 public final class JsonUtilForCorrelationId {
 
-    private static final String JSON_HEADER = "pnfRegistrationFields";
     private static final String JSON_CORRELATION_ID_FIELD_NAME = "correlationId";
 
     static List<String> parseJsonToGelAllCorrelationId(String json) {
-        List<String> list = new ArrayList<>();
         JsonElement je = new JsonParser().parse(json);
-        if (je.isJsonObject()) {
-            getCorrelationIdFromJsonObject(je.getAsJsonObject()).ifPresent(corr -> list.add(corr));
-        } else {
-            JsonArray array = je.getAsJsonArray();
-            Spliterator<JsonElement> spliterator = array.spliterator();
-            spliterator.forEachRemaining(jsonElement -> {
-                parseJsonElementToJsonObject(jsonElement)
-                        .ifPresent(jsonObject -> getCorrelationIdFromJsonObject(jsonObject)
-                                .ifPresent(correlationId -> list.add(correlationId)));
-            });
-        }
+        JsonArray array = je.getAsJsonArray();
+        List<String> list = new ArrayList<>();
+        Spliterator<JsonElement> spliterator = array.spliterator();
+        spliterator.forEachRemaining(jsonElement -> {
+            handleEscapedCharacters(jsonElement)
+                    .ifPresent(jsonObject -> getCorrelationId(jsonObject)
+                            .ifPresent(correlationId -> list.add(correlationId)));
+        });
         return list;
     }
 
-    private static Optional<JsonObject> parseJsonElementToJsonObject(JsonElement jsonElement) {
+    private static Optional<JsonObject> handleEscapedCharacters(JsonElement jsonElement) {
         if (jsonElement.isJsonObject()) {
             return Optional.ofNullable(jsonElement.getAsJsonObject());
         }
         return Optional.ofNullable(new JsonParser().parse(jsonElement.getAsString()).getAsJsonObject());
     }
 
-    private static Optional<String> getCorrelationIdFromJsonObject(JsonObject jsonObject) {
-        if (jsonObject.has(JSON_HEADER)) {
-            JsonObject jo = jsonObject.getAsJsonObject(JSON_HEADER);
-            if (jo.has(JSON_CORRELATION_ID_FIELD_NAME)) {
-                return Optional.ofNullable(jo.get(JSON_CORRELATION_ID_FIELD_NAME).getAsString());
-            }
+    private static Optional<String> getCorrelationId(JsonObject jsonObject) {
+        if (jsonObject.has(JSON_CORRELATION_ID_FIELD_NAME)) {
+            return Optional.ofNullable(jsonObject.get(JSON_CORRELATION_ID_FIELD_NAME).getAsString());
         }
         return Optional.empty();
     }
-
 }
index 518d7ff..373e84b 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Copyright (C) 2018 Nokia.
+ * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
index 24d1810..fde112b 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Copyright (C) 2018 Nokia.
+ * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
@@ -24,30 +26,18 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import java.util.List;
 import org.junit.Test;
-import org.onap.so.bpmn.infrastructure.pnf.dmaap.JsonUtilForCorrelationId;
 
 public class JsonUtilForCorrelationIdTest {
 
-    private static final String JSON_EXAMPLE_WITH_CORRELATION_ID = "[\n"
-            + "    {\n"
-            + "        \"pnfRegistrationFields\" : {\n"
-            + "        \"correlationId\" : \"corrTest1\",\n"
-            + "        \"value\" : \"value1\"\n"
-            + "        }\n"
-            + "    },\n"
-            + "    {\n"
-            + "        \"pnfRegistrationFields\" : {\n"
-            + "        \"correlationId\" : \"corrTest2\",\n"
-            + "        \"value\" : \"value2\"\n"
-            + "        }\n"
-            + "    }\n"
-            + "]";
+    private static final String JSON_EXAMPLE_WITH_CORRELATION_ID = "[{\"correlationId\": \"corrTest1\","
+            + "\"key1\":\"value1\"},{\"correlationId\": \"corrTest2\",\"key2\":\"value2\"}]";
+
+    private static final String JSON_WITH_ONE_CORRELATION_ID = "[{\"correlationId\":\"corrTest3\"}]";
+
+    private static final String JSON_WITH_TWO_CORRELATION_ID_AND_ESCAPED_CHARACTERS =
+            "[\"{\\\"correlationId\\\":\\\"corrTest4\\\"}\", \"{\\\"correlationId\\\":\\\"corrTest5\\\"}\"]";
 
-    private static final String JSON_EXAMPLE_WITH_CORRELATION_ID2 = "{\"pnfRegistrationFields\":{\"correlationId\":\"corrTest3\"}}";
-    private static final String JSON_EXAMPLE_WITH_CORRELATION_ID3 = "[\"{\\\"pnfRegistrationFields\\\":"
-            + "{\\\"correlationId\\\":\\\"corrTest4\\\"}}\", \"{\\\"pnfRegistrationFields\\\":"
-            + "{\\\"correlationId\\\":\\\"corrTest5\\\"}}\"]";
-    private static final String JSON_EXAMPLE_WITH_CORRELATION_ID4 = "{\"header\":{\"key\":\"value\"}}";
+    private static final String JSON_WITH_NO_CORRELATION_ID = "[{\"key1\":\"value1\"}]";
 
     @Test
     public void parseJsonSuccessful() {
@@ -56,21 +46,21 @@ public class JsonUtilForCorrelationIdTest {
         assertThat(expectedResult).containsExactly("corrTest1", "corrTest2");
 
         List<String> expectedResult2 = JsonUtilForCorrelationId
-                .parseJsonToGelAllCorrelationId(JSON_EXAMPLE_WITH_CORRELATION_ID2);
+                .parseJsonToGelAllCorrelationId(JSON_WITH_ONE_CORRELATION_ID);
         assertThat(expectedResult2).containsExactly("corrTest3");
     }
 
     @Test
     public void parseJsonWithEscapeCharacters_Successful() {
         List<String> expectedResult = JsonUtilForCorrelationId
-                .parseJsonToGelAllCorrelationId(JSON_EXAMPLE_WITH_CORRELATION_ID3);
+                .parseJsonToGelAllCorrelationId(JSON_WITH_TWO_CORRELATION_ID_AND_ESCAPED_CHARACTERS);
         assertThat(expectedResult).containsExactly("corrTest4", "corrTest5");
     }
 
     @Test
     public void parseJson_emptyListReturnedWhenNothingFound() {
         List<String> expectedResult = JsonUtilForCorrelationId
-                .parseJsonToGelAllCorrelationId(JSON_EXAMPLE_WITH_CORRELATION_ID4);
+                .parseJsonToGelAllCorrelationId(JSON_WITH_NO_CORRELATION_ID);
         assertThat(expectedResult).isEmpty();
     }
 
index aab01c0..1b0169d 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Copyright (C) 2018 Nokia.
+ * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
@@ -55,22 +57,10 @@ public class PnfEventReadyDmaapClientTest {
 
     private static final String CORRELATION_ID = "corrTestId";
     private static final String CORRELATION_ID_NOT_FOUND_IN_MAP = "otherCorrId";
-    private static final String JSON_EXAMPLE_WITH_CORRELATION_ID = "[\n"
-            + "    {\n"
-            + "        \"pnfRegistrationFields\" : {\n"
-            + "        \"correlationId\" : \"%s\",\n"
-            + "        \"value\" : \"value1\"\n"
-            + "        }\n"
-            + "    },\n"
-            + "    {\n"
-            + "        \"pnfRegistrationFields\" : {\n"
-            + "        \"correlationId\" : \"corr\",\n"
-            + "        \"value\" : \"value2\"\n"
-            + "        }\n"
-            + "    }\n"
-            + "]";
-    private static final String JSON_EXAMPLE_WITH_NO_CORRELATION_ID =
-            "{\"pnfRegistrationFields\":{\"field\":\"value\"}}";
+    private static final String JSON_EXAMPLE_WITH_CORRELATION_ID = "[{\"correlationId\": \"%s\","
+            + "\"value\":\"value1\"},{\"correlationId\": \"corr\",\"value\":\"value2\"}]";
+
+    private static final String JSON_EXAMPLE_WITH_NO_CORRELATION_ID = "[{\"key1\":\"value1\"}]";
 
     private static final String HOST = "hostTest";
     private static final int PORT = 1234;