summaryrefslogtreecommitdiffstats
path: root/csarvalidation/src/test/java/org/onap
diff options
context:
space:
mode:
authorBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>2020-07-21 11:35:49 +0200
committerBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>2020-07-21 09:37:20 +0000
commit3dcd5675ad634f5bd3dd859a0362c259de271a06 (patch)
tree6b27163d264c1f2d7037b0b664eb546d87cc4cc7 /csarvalidation/src/test/java/org/onap
parentcffcfb03ea1e357a51e80a1c699666cc3b0b3776 (diff)
Add list of values validation using schema in PM Dictionary.
Issue-ID: VNFSDK-594 Signed-off-by: Bartosz Gardziejewski <bartosz.gardziejewski@nokia.com> Change-Id: I1e59bdfb697adb6097636212fa5be8c749f084e6
Diffstat (limited to 'csarvalidation/src/test/java/org/onap')
-rw-r--r--csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR816745IntegrationTest.java22
-rw-r--r--csarvalidation/src/test/java/org/onap/validation/yaml/YamlFileValidatorTest.java47
-rw-r--r--csarvalidation/src/test/java/org/onap/validation/yaml/YamlLoaderTest.java15
-rw-r--r--csarvalidation/src/test/java/org/onap/validation/yaml/YamlLoadingUtils.java8
-rw-r--r--csarvalidation/src/test/java/org/onap/validation/yaml/YamlValidatorTest.java58
-rw-r--r--csarvalidation/src/test/java/org/onap/validation/yaml/model/YamlDocumentFactoryTest.java3
-rw-r--r--csarvalidation/src/test/java/org/onap/validation/yaml/model/YamlParameterListFactoryTest.java9
7 files changed, 124 insertions, 38 deletions
diff --git a/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR816745IntegrationTest.java b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR816745IntegrationTest.java
index 70a370e..5ef4e99 100644
--- a/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR816745IntegrationTest.java
+++ b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR816745IntegrationTest.java
@@ -38,6 +38,7 @@ public class VTPValidateCSARR816745IntegrationTest {
private static final boolean IS_PNF = true;
private static final String TEST_CSAR_DIRECTORY = "pnf/r816745/";
+ private static final int NUMBER_OF_EXPECTED_ERRORS = 4;
private VTPValidateCSARR816745 testCase;
@@ -132,12 +133,13 @@ public class VTPValidateCSARR816745IntegrationTest {
}
private void assertThatReturnedErrorsAreCorrect(List<CSARArchive.CSARError> errors) {
- assertThat(errors.size()).isEqualTo(3);
+ assertThat(errors.size()).isEqualTo(NUMBER_OF_EXPECTED_ERRORS);
Condition<String> containingSameFileForAllErrors = new HamcrestCondition<>(
containsString("Artifacts/Deployment/Measurements/PM_Dictionary.yml")
);
- assertThat(convertToFilesList(errors)).haveExactly(3, containingSameFileForAllErrors);
+ assertThat(convertToFilesList(errors))
+ .haveExactly(NUMBER_OF_EXPECTED_ERRORS, containingSameFileForAllErrors);
Condition<String> containingErrorForMissingValueInFirstDocument = new HamcrestCondition<>(allOf(
containsString("Invalid YAML document in PM_Dictionary file."),
@@ -151,9 +153,9 @@ public class VTPValidateCSARR816745IntegrationTest {
containsString("Invalid YAML document in PM_Dictionary file."),
containsString("In document number 1"),
containsString("Path: /pmMetaData/pmFields/measResultType"),
- containsString("Value is not in array of accepted values."),
- containsString("value: integer"),
- containsString("accepted values: [float, uint32, uint64]")
+ containsString("Value(s) is/are not in array of accepted values."),
+ containsString("value(s): integer"),
+ containsString("accepted value(s): [float, uint32, uint64]")
));
assertThat(convertToMessagesList(errors)).haveExactly(1, containingErrorForWrongValueInFirstDocument);
@@ -164,6 +166,16 @@ public class VTPValidateCSARR816745IntegrationTest {
containsString("Key not found: measChangeType")
));
assertThat(convertToMessagesList(errors)).haveExactly(1, containingErrorForMissingValueInSecondDocument);
+
+ Condition<String> containingErrorForWrongValueInArrayInThirdDocument = new HamcrestCondition<>(allOf(
+ containsString("Invalid YAML document in PM_Dictionary file."),
+ containsString("In document number 3"),
+ containsString("Path: /pmMetaData/pmFields/measAdditionalFields/vendorField1"),
+ containsString("Value(s) is/are not in array of accepted values."),
+ containsString("value(s): [Z, A]"),
+ containsString("accepted value(s): [X, Y, Z]")
+ ));
+ assertThat(convertToMessagesList(errors)).haveExactly(1, containingErrorForWrongValueInArrayInThirdDocument);
}
}
diff --git a/csarvalidation/src/test/java/org/onap/validation/yaml/YamlFileValidatorTest.java b/csarvalidation/src/test/java/org/onap/validation/yaml/YamlFileValidatorTest.java
index 6ef78ae..d29b41a 100644
--- a/csarvalidation/src/test/java/org/onap/validation/yaml/YamlFileValidatorTest.java
+++ b/csarvalidation/src/test/java/org/onap/validation/yaml/YamlFileValidatorTest.java
@@ -31,7 +31,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
public class YamlFileValidatorTest {
@Test
- public void shouldReturnNoErrorsWhenGivenPathToValidPmDictionaryFile() throws YamlProcessingException {
+ public void shouldReturnCorrectErrorsWhenGivenPathToValidPmDictionaryFile() throws YamlProcessingException {
// given
String path = getFullPathForGivenResources(YamlLoadingUtils.PATH_TO_VALID_YAML);
@@ -40,25 +40,48 @@ public class YamlFileValidatorTest {
new YamlFileValidator().validateYamlFileWithSchema(path);
// then
+ assertValidationReturnedExpectedErrors(validationErrors);
+
+ }
+
+ @Test
+ public void shouldReturnCorrecErrorsWhenGivenPathToValidJsonStylePmDictionaryFile() throws YamlProcessingException {
+ // given
+ String path = getFullPathForGivenResources(YamlLoadingUtils.PATH_TO_VALID_JSON_STYLE_YAML);
+
+ // when
+ List<YamlDocumentValidationError> validationErrors =
+ new YamlFileValidator().validateYamlFileWithSchema(path);
+
+ // then
+ assertValidationReturnedExpectedErrors(validationErrors);
+ }
+
+
+ private void assertValidationReturnedExpectedErrors(List<YamlDocumentValidationError> validationErrors) {
assertThat(validationErrors).isNotNull();
- assertThat(validationErrors).hasSize(3);
+ assertThat(validationErrors).hasSize(4);
assertThat(validationErrors).usingRecursiveFieldByFieldElementComparator().containsAll(
Lists.list(
- new YamlDocumentValidationError(1 ,
- "/pmMetaData/pmFields/measResultType" ,
- "Value is not in array of accepted values.\n" +
- " value: integer\n" +
- " accepted values: [float, uint32, uint64]"),
- new YamlDocumentValidationError(1 ,
+ new YamlDocumentValidationError(1,
+ "/pmMetaData/pmFields/measResultType",
+ "Value(s) is/are not in array of accepted values.\n" +
+ " value(s): integer\n" +
+ " accepted value(s): [float, uint32, uint64]"),
+ new YamlDocumentValidationError(1,
"/pmMetaData/pmFields/",
- "Key not found: measChangeType"),
- new YamlDocumentValidationError(2 ,
+ "Key not found: measChangeType"),
+ new YamlDocumentValidationError(2,
"/pmMetaData/pmFields/",
- "Key not found: measChangeType")
+ "Key not found: measChangeType"),
+ new YamlDocumentValidationError(3,
+ "/pmMetaData/pmFields/measAdditionalFields/vendorField1",
+ "Value(s) is/are not in array of accepted values.\n" +
+ " value(s): [Z, A]\n" +
+ " accepted value(s): [X, Y, Z]")
)
);
}
-
@Test
public void shouldThrowErrorWhenGivenPathToInvalidPmDictionaryFile() {
// given
diff --git a/csarvalidation/src/test/java/org/onap/validation/yaml/YamlLoaderTest.java b/csarvalidation/src/test/java/org/onap/validation/yaml/YamlLoaderTest.java
index e7efc2b..9e7af5d 100644
--- a/csarvalidation/src/test/java/org/onap/validation/yaml/YamlLoaderTest.java
+++ b/csarvalidation/src/test/java/org/onap/validation/yaml/YamlLoaderTest.java
@@ -31,13 +31,24 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
public class YamlLoaderTest {
+ private static final int EXPECTED_NUMBER_OF_DOCUMENTS = 5;
+
@Test
public void shouldLoadAllDocumentsFromYamlFile() throws YamlDocumentFactory.YamlDocumentParsingException {
// when
List<YamlDocument> documents = YamlLoadingUtils.loadValidMultiDocumentYamlFile();
// then
- assertThat(documents).hasSize(4);
+ assertThat(documents).hasSize(EXPECTED_NUMBER_OF_DOCUMENTS);
+ }
+
+ @Test
+ public void shouldLoadAllDocumentsFromJsonStyleYamlFile() throws YamlDocumentFactory.YamlDocumentParsingException {
+ // when
+ List<YamlDocument> documents = YamlLoadingUtils.loadValidJsonStyleMultiDocumentYamlFile();
+
+ // then
+ assertThat(documents).hasSize(EXPECTED_NUMBER_OF_DOCUMENTS);
}
@Test
@@ -46,7 +57,7 @@ public class YamlLoaderTest {
List<YamlDocument> documents = YamlLoadingUtils.loadValidMultiDocumentYamlFileUsingStringPath();
// then
- assertThat(documents).hasSize(4);
+ assertThat(documents).hasSize(EXPECTED_NUMBER_OF_DOCUMENTS);
}
@Test
diff --git a/csarvalidation/src/test/java/org/onap/validation/yaml/YamlLoadingUtils.java b/csarvalidation/src/test/java/org/onap/validation/yaml/YamlLoadingUtils.java
index 5e09e0a..9df15cd 100644
--- a/csarvalidation/src/test/java/org/onap/validation/yaml/YamlLoadingUtils.java
+++ b/csarvalidation/src/test/java/org/onap/validation/yaml/YamlLoadingUtils.java
@@ -29,11 +29,13 @@ public final class YamlLoadingUtils {
private YamlLoadingUtils() {}
- public static final int VALID_YAML_DOCUMENT_INDEX = 3;
+ public static final int VALID_YAML_DOCUMENT_INDEX = 4;
+ public static final int YAML_DOCUMENT_WITH_WRONG_VALUE_IN_ARRAY_INDEX = 3;
public static final int YAML_DOCUMENT_WITH_MISSING_FIELD_INDEX = 2;
public static final int YAML_DOCUMENT_WITH_MISSING_FIELD_AND_WRONG_VALUE_INDEX = 1;
static final String PATH_TO_VALID_YAML = "yaml_schema/PM_Dictionary.yaml";
+ static final String PATH_TO_VALID_JSON_STYLE_YAML = "yaml_schema/PM_Dictionary_JSON_Style.yaml";
private static final String PATH_TO_SIMPLE_VALID_SCHEMA = "yaml_schema/Simple_Valid_Schema.yaml";
private static final String PATH_TO_SIMPLE_VALID_SCHEMA_MULTI_ROOT = "yaml_schema/Simple_Valid_Schema_Multi_Root.yaml";
private static final String PATH_TO_SIMPLE_INVALID_SCHEMA = "yaml_schema/Simple_Invalid_Schema_Construction.yaml";
@@ -44,6 +46,10 @@ public final class YamlLoadingUtils {
return new YamlLoader().loadMultiDocumentYamlFile(getUrlForGivenPath(PATH_TO_VALID_YAML));
}
+ public static List<YamlDocument> loadValidJsonStyleMultiDocumentYamlFile() throws YamlDocumentParsingException {
+ return new YamlLoader().loadMultiDocumentYamlFile(getUrlForGivenPath(PATH_TO_VALID_JSON_STYLE_YAML));
+ }
+
public static List<YamlDocument> loadValidMultiDocumentYamlFileUsingStringPath() throws YamlProcessingException {
return new YamlLoader().loadMultiDocumentYamlFile(getUrlForGivenPath(PATH_TO_VALID_YAML).getPath());
}
diff --git a/csarvalidation/src/test/java/org/onap/validation/yaml/YamlValidatorTest.java b/csarvalidation/src/test/java/org/onap/validation/yaml/YamlValidatorTest.java
index 4927d32..efe9d69 100644
--- a/csarvalidation/src/test/java/org/onap/validation/yaml/YamlValidatorTest.java
+++ b/csarvalidation/src/test/java/org/onap/validation/yaml/YamlValidatorTest.java
@@ -32,9 +32,29 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.onap.validation.yaml.YamlLoadingUtils.VALID_YAML_DOCUMENT_INDEX;
import static org.onap.validation.yaml.YamlLoadingUtils.YAML_DOCUMENT_WITH_MISSING_FIELD_INDEX;
import static org.onap.validation.yaml.YamlLoadingUtils.YAML_DOCUMENT_WITH_MISSING_FIELD_AND_WRONG_VALUE_INDEX;
+import static org.onap.validation.yaml.YamlLoadingUtils.YAML_DOCUMENT_WITH_WRONG_VALUE_IN_ARRAY_INDEX;
public class YamlValidatorTest {
+
+ @Test
+ public void shouldCreateValidatorUsingSchemaLoadedFromYamlFileAndValidatedJsonStyleDocumentsFromThatFile()
+ throws YamlProcessingException {
+
+ // given
+ List<YamlDocument> documents = YamlLoadingUtils.loadValidJsonStyleMultiDocumentYamlFile();
+ YamlValidator validator = new YamlValidator(new YamlSchemaFactory().createTreeStructuredYamlSchema(documents.get(0)));
+ Map<Integer,List<SchemaValidationError>> validationErrors = new HashMap<>();
+
+ // when
+ for (int documentIndex = 1 ; documentIndex < documents.size() ; documentIndex++) {
+ validationErrors.put(documentIndex, validator.validate(documents.get(documentIndex)));
+ }
+
+ // then
+ assertValidatorReturnedCorrectErrors(validationErrors);
+ }
+
@Test
public void shouldCreateValidatorUsingSchemaLoadedFromYamlFileAndValidatedDocumentsFromThatFile()
throws YamlProcessingException {
@@ -44,26 +64,38 @@ public class YamlValidatorTest {
YamlValidator validator = new YamlValidator(new YamlSchemaFactory().createTreeStructuredYamlSchema(documents.get(0)));
Map<Integer,List<SchemaValidationError>> validationErrors = new HashMap<>();
+ // when
+ for (int documentIndex = 1 ; documentIndex < documents.size() ; documentIndex++) {
+ validationErrors.put(documentIndex, validator.validate(documents.get(documentIndex)));
+ }
+
+ // then
+ assertValidatorReturnedCorrectErrors(validationErrors);
+ }
+
+ private void assertValidatorReturnedCorrectErrors(Map<Integer, List<SchemaValidationError>> validationErrors) {
+
SchemaValidationError expectedValidationValueError =
new SchemaValidationError(
"/pmMetaData/pmFields/measResultType",
- "Value is not in array of accepted values.\n"
- + " value: integer\n"
- + " accepted values: [float, uint32, uint64]"
+ "Value(s) is/are not in array of accepted values.\n"
+ + " value(s): integer\n"
+ + " accepted value(s): [float, uint32, uint64]"
);
SchemaValidationError expectedValidationKeyError =
new SchemaValidationError(
"/pmMetaData/pmFields/",
"Key not found: measChangeType"
);
+ SchemaValidationError expectedValidationValuesInArrayError =
+ new SchemaValidationError(
+ "/pmMetaData/pmFields/measAdditionalFields/vendorField1",
+ "Value(s) is/are not in array of accepted values.\n"
+ + " value(s): [Z, A]\n"
+ + " accepted value(s): [X, Y, Z]"
+ );
- // when
- for (int documentIndex = 1 ; documentIndex < documents.size() ; documentIndex++) {
- validationErrors.put(documentIndex, validator.validate(documents.get(documentIndex)));
- }
-
- // then
- assertThat(validationErrors.size()).isEqualTo(3);
+ assertThat(validationErrors.size()).isEqualTo(4);
assertThat(validationErrors).containsKeys(1,2,3);
assertThat(validationErrors.get(YAML_DOCUMENT_WITH_MISSING_FIELD_AND_WRONG_VALUE_INDEX)).hasSize(2);
assertThat(validationErrors.get(YAML_DOCUMENT_WITH_MISSING_FIELD_AND_WRONG_VALUE_INDEX))
@@ -79,6 +111,12 @@ public class YamlValidatorTest {
.contains(
expectedValidationKeyError
);
+ assertThat(validationErrors.get(YAML_DOCUMENT_WITH_WRONG_VALUE_IN_ARRAY_INDEX)).hasSize(1);
+ assertThat(validationErrors.get(YAML_DOCUMENT_WITH_WRONG_VALUE_IN_ARRAY_INDEX))
+ .usingFieldByFieldElementComparator()
+ .contains(
+ expectedValidationValuesInArrayError
+ );
assertThat(validationErrors.get(VALID_YAML_DOCUMENT_INDEX)).hasSize(0);
}
diff --git a/csarvalidation/src/test/java/org/onap/validation/yaml/model/YamlDocumentFactoryTest.java b/csarvalidation/src/test/java/org/onap/validation/yaml/model/YamlDocumentFactoryTest.java
index 469b39f..5641a56 100644
--- a/csarvalidation/src/test/java/org/onap/validation/yaml/model/YamlDocumentFactoryTest.java
+++ b/csarvalidation/src/test/java/org/onap/validation/yaml/model/YamlDocumentFactoryTest.java
@@ -29,7 +29,6 @@ import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.onap.validation.yaml.model.YamlDocumentFactory.YamlDocumentParsingException;
-import static org.onap.validation.yaml.model.YamlParameterListFactory.YamlParameterListParsingException;
public class YamlDocumentFactoryTest {
@@ -91,7 +90,7 @@ public class YamlDocumentFactoryTest {
@Test
public void shouldTurnMapOfUnknownKeyTypeToMapWithStringKeysAndBeAbleToExtractParametersList()
- throws YamlDocumentParsingException, YamlParameterListParsingException {
+ throws YamlDocumentParsingException {
// given
Map<Object, Object> inputMap = new HashMap<>();
List<String> parametersList = new LinkedList<>();
diff --git a/csarvalidation/src/test/java/org/onap/validation/yaml/model/YamlParameterListFactoryTest.java b/csarvalidation/src/test/java/org/onap/validation/yaml/model/YamlParameterListFactoryTest.java
index 1f370cb..34e61c5 100644
--- a/csarvalidation/src/test/java/org/onap/validation/yaml/model/YamlParameterListFactoryTest.java
+++ b/csarvalidation/src/test/java/org/onap/validation/yaml/model/YamlParameterListFactoryTest.java
@@ -37,8 +37,7 @@ public class YamlParameterListFactoryTest {
}
@Test
- public void shouldCreateParametersListContainingStringsFromListContainingSimpleTypes()
- throws YamlParameterListFactory.YamlParameterListParsingException {
+ public void shouldCreateParametersListContainingStringsFromListContainingSimpleTypes() {
// given
List<Object> testList = Lists.list("test1",3,23.45,'a',"test2");
@@ -52,8 +51,7 @@ public class YamlParameterListFactoryTest {
}
@Test
- public void shouldCreateParametersListContainingStringsFromListContainingVariousTypes()
- throws YamlParameterListFactory.YamlParameterListParsingException {
+ public void shouldCreateParametersListContainingStringsFromListContainingVariousTypes() {
// given
List<Object> testList = Lists.list("test1",3,Lists.list(2,3,4),"test2");
@@ -67,8 +65,7 @@ public class YamlParameterListFactoryTest {
}
@Test
- public void shouldCreateListWithOneStringWhenGivenObjectIsNotList()
- throws YamlParameterListFactory.YamlParameterListParsingException {
+ public void shouldCreateListWithOneStringWhenGivenObjectIsNotList() {
// given
Object testObject = "test";