diff options
author | Adam Wudzinski <adam.wudzinski@nokia.com> | 2020-11-27 12:50:27 +0100 |
---|---|---|
committer | Vasyl Razinkov <vasyl.razinkov@est.tech> | 2020-12-02 12:59:56 +0000 |
commit | ad99b805537fc8f3103fa5646abe5342924e10cd (patch) | |
tree | 266fbadbef9ea2412455b907e9ac688f9e746d60 /openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/java | |
parent | e7f2dfba0cb4d917c8da83c319b47ae279a6151e (diff) |
[SDC] PM_Dictionary file validation for ZIP onboarding
Use PM_Dictionary validator from VNF-SDK to validate PM_Dictionary files when onboarding ZIP package
Issue-ID: SDC-3390
Signed-off-by: Adam Wudzinski <adam.wudzinski@nokia.com>
Change-Id: I03fd622393d675977527b9845b6cf8b87b2ec0a3
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/java')
2 files changed, 171 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/java/org/openecomp/sdc/validation/impl/validators/FileExtensionUtilsTest.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/java/org/openecomp/sdc/validation/impl/validators/FileExtensionUtilsTest.java new file mode 100644 index 0000000000..53a2cfa650 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/java/org/openecomp/sdc/validation/impl/validators/FileExtensionUtilsTest.java @@ -0,0 +1,111 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2020 Nokia Intellectual Property. All rights reserved. + * ================================================================================ + * 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.openecomp.sdc.validation.impl.validators; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.jupiter.api.Test; + +class FileExtensionUtilsTest { + + private static final Set<String> VALID_YAML_EXTENSIONS = Set.of( + ".yaml", + ".yml", + ".env" + ); + private static final Set<String> INVALID_YAML_EXTENSIONS = Set.of( + ".txt", + ".java", + ".properties" + ); + + private static final Set<String> VALID_PM_DICTIONARY_EXTENSIONS = Set.of( + "pmdict.yml", + "pmdict.yaml", + "pm_dict.yml", + "pm_dict.yaml", + "pmdictionary.yml", + "pmdictionary.yaml", + "pm_dictionary.yml", + "pm_dictionary.yaml" + ); + private static final Set<String> INVALID_PM_DICTIONARY_EXTENSIONS = Set.of( + "pmdict.txt", + "pmdict.java", + "pm.yml" + ); + + private static final Set<String> TEST_FILE_PREFIXES = Set.of( + "test", + "test_file" + ); + + @Test + void shouldMatchProperYamlExtensions() { + final boolean allValidFilesMatched = constructTestFilenamesWithExtensions(VALID_YAML_EXTENSIONS) + .allMatch(FileExtensionUtils::isYaml); + + assertTrue(allValidFilesMatched); + } + + @Test + void shouldNotMatchImproperYamlExtensions() { + final boolean allInvalidFilesNotMatched = constructTestFilenamesWithExtensions(INVALID_YAML_EXTENSIONS) + .noneMatch(FileExtensionUtils::isYaml); + + assertTrue(allInvalidFilesNotMatched); + } + + @Test + void shouldMatchProperPmDictionaryExtensions() { + final boolean allValidFilesMatched = constructTestFilenamesWithExtensions(VALID_PM_DICTIONARY_EXTENSIONS) + .allMatch(FileExtensionUtils::isPmDictionary); + + assertTrue(allValidFilesMatched); + } + + @Test + void shouldNotMatchImproperPmDictionaryExtensions() { + final boolean allInvalidFilesNotMatched = constructTestFilenamesWithExtensions(INVALID_PM_DICTIONARY_EXTENSIONS) + .noneMatch(FileExtensionUtils::isPmDictionary); + + assertTrue(allInvalidFilesNotMatched); + } + + private Stream<String> constructTestFilenamesWithExtensions(Set<String> extensions) { + return extensions.stream() + .flatMap(ext -> prepareFilenamesWithExtension(ext).stream()); + } + + private Set<String> prepareFilenamesWithExtension(String extension) { + return Stream.concat( + joinTestNamesWithExtension(extension.toLowerCase()), + joinTestNamesWithExtension(extension.toUpperCase()) + ).collect(Collectors.toSet()); + } + + private Stream<String> joinTestNamesWithExtension(String extension) { + return TEST_FILE_PREFIXES.stream() + .map(prefix -> prefix + extension); + } +}
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/java/org/openecomp/sdc/validation/impl/validators/PmDictionaryValidatorTest.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/java/org/openecomp/sdc/validation/impl/validators/PmDictionaryValidatorTest.java new file mode 100644 index 0000000000..d841694a23 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/java/org/openecomp/sdc/validation/impl/validators/PmDictionaryValidatorTest.java @@ -0,0 +1,60 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2020 Nokia Intellectual Property. All rights reserved. + * ================================================================================ + * 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.validation.impl.validators; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import java.util.Map; +import org.junit.jupiter.api.Test; +import org.openecomp.core.validation.types.MessageContainer; +import org.openecomp.sdc.validation.util.ValidationTestUtil; + +public class PmDictionaryValidatorTest { + + private static final String RESOURCE_PATH = "/org/openecomp/validation/validators/pm_dictionary_validator"; + private static final String VALID_PM_DICTIONARY_YAML = "valid_pm_dictionary.yaml"; + private static final String INVALID_PM_DICTIONARY_YAML = "invalid_pm_dictionary.yaml"; + + @Test + public void shouldNotReturnErrorsWhenValidPmDict() { + Map<String, MessageContainer> messages = runValidation( + RESOURCE_PATH + "/" + VALID_PM_DICTIONARY_YAML); + + assertNotNull(messages); + assertEquals(0, messages.size()); + } + + @Test + public void shouldReturnErrorsWhenInvalidPmDict() { + Map<String, MessageContainer> messages = runValidation( + RESOURCE_PATH + "/" + INVALID_PM_DICTIONARY_YAML); + + assertNotNull(messages); + assertNotNull(messages.get(INVALID_PM_DICTIONARY_YAML)); + assertEquals(4, messages.get(INVALID_PM_DICTIONARY_YAML).getErrorMessageList().size()); + } + + private Map<String, MessageContainer> runValidation(String path) { + PmDictionaryValidator validator = new PmDictionaryValidator(); + return ValidationTestUtil.testValidator(validator, path); + } +}
\ No newline at end of file |