summaryrefslogtreecommitdiffstats
path: root/cps-service
diff options
context:
space:
mode:
Diffstat (limited to 'cps-service')
-rw-r--r--cps-service/src/main/java/org/onap/cps/utils/CmHandleQueryRestParametersValidator.java25
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/utils/CmHandleQueryRestParametersValidatorSpec.groovy5
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/utils/JsonObjectMapperSpec.groovy17
3 files changed, 33 insertions, 14 deletions
diff --git a/cps-service/src/main/java/org/onap/cps/utils/CmHandleQueryRestParametersValidator.java b/cps-service/src/main/java/org/onap/cps/utils/CmHandleQueryRestParametersValidator.java
index 7fe47be2da..4d0eb7d412 100644
--- a/cps-service/src/main/java/org/onap/cps/utils/CmHandleQueryRestParametersValidator.java
+++ b/cps-service/src/main/java/org/onap/cps/utils/CmHandleQueryRestParametersValidator.java
@@ -42,16 +42,16 @@ public class CmHandleQueryRestParametersValidator {
cmHandleQueryServiceParameters.getCmHandleQueryParameters().forEach(
conditionApiProperty -> {
if (Strings.isNullOrEmpty(conditionApiProperty.getConditionName())) {
- throwDataValidationException("Missing 'conditionName' - please supply a valid name.");
+ throw createDataValidationException("Missing 'conditionName' - please supply a valid name.");
}
if (Arrays.stream(ValidQueryProperties.values()).noneMatch(validQueryProperty ->
validQueryProperty.getQueryProperty().equals(conditionApiProperty.getConditionName()))) {
- throwDataValidationException(
+ throw createDataValidationException(
String.format("Wrong 'conditionName': %s - please supply a valid name.",
conditionApiProperty.getConditionName()));
}
if (conditionApiProperty.getConditionParameters().isEmpty()) {
- throwDataValidationException(
+ throw createDataValidationException(
"Empty 'conditionsParameters' - please supply a valid condition parameter.");
}
conditionApiProperty.getConditionParameters().forEach(
@@ -63,16 +63,16 @@ public class CmHandleQueryRestParametersValidator {
private static void validateConditionParameter(final Map<String, String> conditionParameter) {
if (conditionParameter.isEmpty()) {
- throwDataValidationException(
+ throw createDataValidationException(
"Empty 'conditionsParameter' - please supply a valid condition parameter.");
}
if (conditionParameter.size() > 1) {
- throwDataValidationException("Too many name in one 'conditionsParameter' -"
+ throw createDataValidationException("Too many name in one 'conditionsParameter' -"
+ " please supply one name in one condition parameter.");
}
conditionParameter.forEach((key, value) -> {
if (Strings.isNullOrEmpty(key)) {
- throwDataValidationException(
+ throw createDataValidationException(
"Missing 'conditionsParameterName' - please supply a valid name.");
}
});
@@ -86,7 +86,8 @@ public class CmHandleQueryRestParametersValidator {
if (conditionProperty.containsKey("moduleName") && !conditionProperty.get("moduleName").isEmpty()) {
return;
}
- throwDataValidationException("Wrong module condition property. - please supply a valid condition property.");
+ throw createDataValidationException("Wrong module condition property. - "
+ + "please supply a valid condition property.");
}
/**
@@ -98,15 +99,15 @@ public class CmHandleQueryRestParametersValidator {
return true;
}
if (conditionProperty.size() > 1) {
- throwDataValidationException("Only one condition property is allowed for the CPS path query.");
+ throw createDataValidationException("Only one condition property is allowed for the CPS path query.");
}
if (!conditionProperty.containsKey("cpsPath")) {
- throwDataValidationException(
+ throw createDataValidationException(
"Wrong CPS path condition property. - expecting \"cpsPath\" as the condition property.");
}
final String cpsPath = conditionProperty.get("cpsPath");
if (cpsPath.isBlank()) {
- throwDataValidationException(
+ throw createDataValidationException(
"Wrong CPS path. - please supply a valid CPS path.");
}
if (cpsPath.contains("/additional-properties")) {
@@ -117,8 +118,8 @@ public class CmHandleQueryRestParametersValidator {
return true;
}
- private static void throwDataValidationException(final String details) {
- throw new DataValidationException("Invalid Query Parameter.", details);
+ private static DataValidationException createDataValidationException(final String details) {
+ return new DataValidationException("Invalid Query Parameter.", details);
}
}
diff --git a/cps-service/src/test/groovy/org/onap/cps/utils/CmHandleQueryRestParametersValidatorSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/utils/CmHandleQueryRestParametersValidatorSpec.groovy
index d5dcb7fc5c..c40ffa9a35 100644
--- a/cps-service/src/test/groovy/org/onap/cps/utils/CmHandleQueryRestParametersValidatorSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/utils/CmHandleQueryRestParametersValidatorSpec.groovy
@@ -103,6 +103,11 @@ class CmHandleQueryRestParametersValidatorSpec extends Specification {
'cpsPath not supplied' | ['cpsPath':''] || 'Wrong CPS path. - please supply a valid CPS path.'
}
+ def 'No conditions.'() {
+ expect: 'no conditions always returns true'
+ CmHandleQueryRestParametersValidator.validateCpsPathConditionProperties([:]) == true
+ }
+
def 'Validate CmHandle where #scenario.'() {
when: 'the validator is called on a cps path condition property'
def result = CmHandleQueryRestParametersValidator.validateCpsPathConditionProperties(['cpsPath':cpsPath])
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 461014418e..e205a19eed 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
@@ -20,7 +20,7 @@
package org.onap.cps.utils
-
+import com.fasterxml.jackson.core.JsonProcessingException
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SerializationFeature
import groovy.json.JsonSlurper
@@ -44,6 +44,19 @@ class JsonObjectMapperSpec extends Specification {
assert contentMap.'test:bookstore'.'bookstore-name' == 'Chapters'
}
+ def 'Map a structured object to json String error.'() {
+ given: 'some object'
+ def object = new Object()
+ and: 'the Object mapper throws an exception'
+ spiedObjectMapper.writeValueAsString(object) >> { throw new JsonProcessingException('Sample problem'){} }
+ when: 'attempting to convert the object to a string'
+ jsonObjectMapper.asJsonString(object);
+ then: 'a Data Validation Exception is thrown'
+ def thrown = thrown(DataValidationException)
+ and: 'the details containing the original error message'
+ assert thrown.details == 'Sample problem'
+ }
+
def 'Map a structurally compatible object to class object of specific class type T.'() {
given: 'a map object model'
def contentMap = new JsonSlurper().parseText(TestUtils.getResourceFileContent('bookstore.json'))
@@ -61,7 +74,7 @@ class JsonObjectMapperSpec extends Specification {
given: 'Unstructured json string'
def content = '{ "nest": { "birds": "bird"] } }'
when: 'mapping json string to given class type'
- def contentMap = jsonObjectMapper.convertJsonString(content, Map);
+ jsonObjectMapper.convertJsonString(content, Map);
then: 'an exception is thrown'
thrown(DataValidationException)
}