summaryrefslogtreecommitdiffstats
path: root/cps-service/src
diff options
context:
space:
mode:
Diffstat (limited to 'cps-service/src')
-rw-r--r--cps-service/src/main/java/org/onap/cps/utils/JsonObjectMapper.java17
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/utils/JsonObjectMapperSpec.groovy18
2 files changed, 35 insertions, 0 deletions
diff --git a/cps-service/src/main/java/org/onap/cps/utils/JsonObjectMapper.java b/cps-service/src/main/java/org/onap/cps/utils/JsonObjectMapper.java
index 2459b51af..338a841a7 100644
--- a/cps-service/src/main/java/org/onap/cps/utils/JsonObjectMapper.java
+++ b/cps-service/src/main/java/org/onap/cps/utils/JsonObjectMapper.java
@@ -21,6 +21,7 @@
package org.onap.cps.utils;
import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -87,4 +88,20 @@ public class JsonObjectMapper {
+ "JSON content to specific class type.", e.getMessage());
}
}
+
+ /**
+ * Deserialize JSON content from given JSON content String to JsonNode.
+ *
+ * @param jsonContent JSON content
+ * @return a json node
+ */
+ public JsonNode convertToJsonNode(final String jsonContent) {
+ try {
+ return objectMapper.readTree(jsonContent);
+ } catch (final JsonProcessingException e) {
+ log.error("Parsing error occurred while converting JSON content to Json Node.");
+ throw new DataValidationException("Parsing error occurred while converting "
+ + "JSON content to Json Node.", e.getMessage());
+ }
+ }
}
diff --git a/cps-service/src/test/groovy/org/onap/cps/utils/JsonObjectMapperSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/utils/JsonObjectMapperSpec.groovy
index f9b8febd4..acb52413f 100644
--- a/cps-service/src/test/groovy/org/onap/cps/utils/JsonObjectMapperSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/utils/JsonObjectMapperSpec.groovy
@@ -84,4 +84,22 @@ class JsonObjectMapperSpec extends Specification {
then: 'an exception is thrown'
thrown(DataValidationException)
}
+
+ def 'Map a structurally compatible json String to JsonNode.'() {
+ given: 'Unstructured object'
+ def content = '{ "nest": { "birds": "bird" } }'
+ when: 'the object is mapped to string'
+ def result = jsonObjectMapper.convertToJsonNode(content);
+ then: 'the result is a valid JsonNode'
+ result.fieldNames().next() == "nest"
+ }
+
+ def 'Map a unstructured json String to JsonNode.'() {
+ given: 'Unstructured object'
+ def content = '{ "nest": { "birds": "bird" }] }'
+ when: 'the object is mapped to string'
+ jsonObjectMapper.convertToJsonNode(content);
+ then: 'a data validation exception is thrown'
+ thrown(DataValidationException)
+ }
}