From 4d94d239aa4f768f5348ac11401fa63d986f963d Mon Sep 17 00:00:00 2001 From: Bartosz Gardziejewski Date: Wed, 24 Jun 2020 13:12:55 +0200 Subject: Skip YAML validation in rule R816745, if onap_pm_dictionary is not present in non_mano_artifact_sets Issue-ID: VNFSDK-594 Signed-off-by: Bartosz Gardziejewski Change-Id: I0e52bcc84583a65243fd821f6434f986d12fdadd --- .../cvc/csar/cc/sol004/VTPValidateCSARR816745.java | 17 ++++++++++ .../VTPValidateCSARR816745IntegrationTest.java | 37 +++++++++++++++++++++ .../pnf/r816745/csar-with-no-pm-dictionary.csar | Bin 0 -> 6717 bytes .../pnf/r816745/csar-with-pm-dictionary.csar | Bin 0 -> 7156 bytes 4 files changed, 54 insertions(+) create mode 100644 csarvalidation/src/test/resources/pnf/r816745/csar-with-no-pm-dictionary.csar create mode 100644 csarvalidation/src/test/resources/pnf/r816745/csar-with-pm-dictionary.csar (limited to 'csarvalidation/src') diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR816745.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR816745.java index ef901f9..47b963e 100644 --- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR816745.java +++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR816745.java @@ -20,16 +20,33 @@ import org.onap.cli.fw.schema.OnapCommandSchema; import org.onap.cvc.csar.CSARArchive; import org.onap.cvc.csar.cc.VTPValidateCSARBase; +import java.util.List; +import java.util.Map; + @OnapCommandSchema(schema = "vtp-validate-csar-r816745.yaml") public class VTPValidateCSARR816745 extends VTPValidateCSARBase { + private static final String PM_DICTIONARY = "onap_pm_dictionary"; + @Override protected void validateCSAR(CSARArchive csar) throws Exception { + Map>> nonManoFields = csar.getManifest().getNonMano(); + if(nonManoFields.containsKey(PM_DICTIONARY)) { + validateYamlFile(getLocationOfPmDictionaryFile(nonManoFields)); + } + } + private String getLocationOfPmDictionaryFile(Map>> nonManoFields) { + return nonManoFields.get(PM_DICTIONARY).get("source").get(0); + } + + private void validateYamlFile(String path) { + throw new UnsupportedOperationException("Under development"); } @Override protected String getVnfReqsNo() { return "R816745"; } + } 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 e75f27e..efe6917 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 @@ -18,21 +18,58 @@ package org.onap.cvc.csar.cc.sol004; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.onap.cli.fw.error.OnapCommandExecutionFailed; +import org.onap.cvc.csar.CSARArchive; + +import java.util.List; import static org.assertj.core.api.Assertions.assertThat; +import static org.onap.cvc.csar.cc.sol004.IntegrationTestUtils.configureTestCase; public class VTPValidateCSARR816745IntegrationTest { private static final boolean IS_PNF = true; + private static final String TEST_CSAR_DIRECTORY = "pnf/r816745/"; private VTPValidateCSARR816745 testCase; + @Rule + public ExpectedException exceptionRule = ExpectedException.none(); + @Before public void setUp() { testCase = new VTPValidateCSARR816745(); } + @Test + public void shouldNotReportAnyErrorWhenCsarIsNotContainingPmDictionary() throws Exception { + // given + configureTestCase(testCase, TEST_CSAR_DIRECTORY + "csar-with-no-pm-dictionary.csar", "vtp-validate-csar-r816745.yaml", IS_PNF); + + // when + testCase.execute(); + + // then + List errors = testCase.getErrors(); + assertThat(errors.size()).isEqualTo(0); + } + + @Test + public void shouldThrowUnsupportedOperationExceptionWhenCsarContainsPmDictionary() throws Exception { + // given + configureTestCase(testCase, TEST_CSAR_DIRECTORY + "csar-with-pm-dictionary.csar", "vtp-validate-csar-r816745.yaml", IS_PNF); + + // then + exceptionRule.expect(OnapCommandExecutionFailed.class); + exceptionRule.expectMessage("Under development"); + + // when + testCase.execute(); + } + @Test public void shouldReturnProperRequestNumber() { assertThat(testCase.getVnfReqsNo()).isEqualTo("R816745"); diff --git a/csarvalidation/src/test/resources/pnf/r816745/csar-with-no-pm-dictionary.csar b/csarvalidation/src/test/resources/pnf/r816745/csar-with-no-pm-dictionary.csar new file mode 100644 index 0000000..f0d4216 Binary files /dev/null and b/csarvalidation/src/test/resources/pnf/r816745/csar-with-no-pm-dictionary.csar differ diff --git a/csarvalidation/src/test/resources/pnf/r816745/csar-with-pm-dictionary.csar b/csarvalidation/src/test/resources/pnf/r816745/csar-with-pm-dictionary.csar new file mode 100644 index 0000000..861f602 Binary files /dev/null and b/csarvalidation/src/test/resources/pnf/r816745/csar-with-pm-dictionary.csar differ -- cgit 1.2.3-korg