diff options
Diffstat (limited to 'cps-service')
-rw-r--r-- | cps-service/src/main/java/org/onap/cps/utils/JsonObjectMapper.java | 16 | ||||
-rw-r--r-- | cps-service/src/test/groovy/org/onap/cps/utils/JsonObjectMapperSpec.groovy | 8 |
2 files changed, 21 insertions, 3 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 338a841a7a..60a6e16fe7 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 @@ -90,6 +90,22 @@ public class JsonObjectMapper { } /** + * Serializing generic json object to bytes using Jackson. + * + * @param jsonObject any json object value + * @return the generated JSON as a byte array. + */ + public byte[] asJsonBytes(final Object jsonObject) { + try { + return objectMapper.writeValueAsBytes(jsonObject); + } catch (final JsonProcessingException jsonProcessingException) { + log.error("Parsing error occurred while converting JSON object to bytes."); + throw new DataValidationException("Parsing error occurred while converting given JSON object to bytes.", + jsonProcessingException.getMessage()); + } + } + + /** * Deserialize JSON content from given JSON content String to JsonNode. * * @param jsonContent JSON content 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 b70c437953..2332282e2b 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 @@ -33,15 +33,17 @@ class JsonObjectMapperSpec extends Specification { def spiedObjectMapper = Spy(ObjectMapper) def jsonObjectMapper = new JsonObjectMapper(spiedObjectMapper) - def 'Map a structured object to json String.'() { + def 'Map a structured object to json #type.'() { given: 'an object model' def object = spiedObjectMapper.readValue(TestUtils.getResourceFileContent('bookstore.json'), Object) when: 'the object is mapped to string' - def content = jsonObjectMapper.asJsonString(object); + def content = type == 'String' ? jsonObjectMapper.asJsonString(object) : jsonObjectMapper.asJsonBytes(object) then: 'the result is a valid json string (can be parsed)' - def contentMap = new JsonSlurper().parseText(content) + def contentMap = new JsonSlurper().parseText(new String(content)) and: 'the parsed content is as expected' assert contentMap.'test:bookstore'.'bookstore-name' == 'Chapters/Easons' + where: 'the following data stores are used' + type << ['String', 'bytes'] } def 'Map a structured object to json String error.'() { |