From dd77214f4d619637975b7ac28219446a454abc5a Mon Sep 17 00:00:00 2001 From: Michal Banka Date: Wed, 20 May 2020 10:12:11 +0200 Subject: Add file extension checking to R972082 Change-Id: If67fce758fdeac29bbb1450892d89a424fdb7c84 Signed-off-by: Michal Banka Issue-ID: VNFSDK-585 --- .../onap/cvc/csar/cc/sol004/VTPValidateCSARR972082.java | 13 +++++++++++++ .../sol004/VTPValidateCSARR972082IntegrationTest.java | 16 ++++++++++++++++ .../pnf/r972082/fileExtensionOfArtifactIsNotYaml.csar | Bin 0 -> 18061 bytes 3 files changed, 29 insertions(+) create mode 100644 csarvalidation/src/test/resources/pnf/r972082/fileExtensionOfArtifactIsNotYaml.csar diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR972082.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR972082.java index 60bdd47..4b35328 100644 --- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR972082.java +++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR972082.java @@ -115,6 +115,16 @@ public class VTPValidateCSARR972082 extends VTPValidateCSARBase { } } + private static class InvalidFileExtensionError extends PnfCSARError { + + private InvalidFileExtensionError(final String fileName) { + super(ERROR_CODE, + String.format("Invalid. File extension %s is invalid", fileName), + UNKNOWN_LINE_NUMBER, + fileName); + } + } + private static class ValidateNonManoSection { private static final String ATTRIBUTE_NAME = "onap_pnf_sw_information"; @@ -187,6 +197,9 @@ public class VTPValidateCSARR972082 extends VTPValidateCSARBase { if (StringUtils.isEmpty(swInformationFilePath)) { errors.add(new MissingSourceElementUnderAttributeError("", swInformationFilePath)); return; + } else if (!swInformationFilePath.matches(".*\\.yaml$")) { + errors.add(new InvalidFileExtensionError(swInformationFilePath)); + return; } final Optional parsedYaml = parse(swInformationFilePath); if (!parsedYaml.isPresent()) { diff --git a/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR972082IntegrationTest.java b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR972082IntegrationTest.java index 66937d4..b63705b 100644 --- a/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR972082IntegrationTest.java +++ b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR972082IntegrationTest.java @@ -60,6 +60,22 @@ public class VTPValidateCSARR972082IntegrationTest { assertThat(errors.size()).isEqualTo(0); } + @Test + public void shouldReturnErrorWhenFileExtensionIsNotYaml() throws Exception { + // given + configureTestCase(testCase, PNF_R_972082 + "fileExtensionOfArtifactIsNotYaml.csar", VTP_VALIDATE_CSAR_R_972082_YAML, IS_PNF); + + // when + testCase.execute(); + + // then + final List errors = testCase.getErrors(); + assertThat(errors.size()).isEqualTo(1); + assertThat(convertToMessagesList(errors)).contains( + "Invalid. File extension Files/pnf-sw-information/pnf-sw-information.json is invalid" + ); + } + @Test public void shouldReturnNoErrorWhenOptionalNonManoArtifactSetEntryIsNotPresent() throws Exception { // given diff --git a/csarvalidation/src/test/resources/pnf/r972082/fileExtensionOfArtifactIsNotYaml.csar b/csarvalidation/src/test/resources/pnf/r972082/fileExtensionOfArtifactIsNotYaml.csar new file mode 100644 index 0000000..f485172 Binary files /dev/null and b/csarvalidation/src/test/resources/pnf/r972082/fileExtensionOfArtifactIsNotYaml.csar differ -- cgit 1.2.3-korg