diff options
author | Bartosz Gardziejewski <bartosz.gardziejewski@nokia.com> | 2020-06-24 13:12:55 +0200 |
---|---|---|
committer | Bartosz Gardziejewski <bartosz.gardziejewski@nokia.com> | 2020-06-25 08:30:30 +0200 |
commit | 4d94d239aa4f768f5348ac11401fa63d986f963d (patch) | |
tree | e2346655d5692c84dafbfd358097e85995c49b09 | |
parent | 1335f80f88909934ad159530c62ab0f8800c4ec3 (diff) |
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 <bartosz.gardziejewski@nokia.com>
Change-Id: I0e52bcc84583a65243fd821f6434f986d12fdadd
4 files changed, 54 insertions, 0 deletions
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<String, Map<String, List<String>>> nonManoFields = csar.getManifest().getNonMano(); + if(nonManoFields.containsKey(PM_DICTIONARY)) { + validateYamlFile(getLocationOfPmDictionaryFile(nonManoFields)); + } + } + private String getLocationOfPmDictionaryFile(Map<String, Map<String, List<String>>> 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,22 +18,59 @@ 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<CSARArchive.CSARError> 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 Binary files differnew file mode 100644 index 0000000..f0d4216 --- /dev/null +++ b/csarvalidation/src/test/resources/pnf/r816745/csar-with-no-pm-dictionary.csar 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 Binary files differnew file mode 100644 index 0000000..861f602 --- /dev/null +++ b/csarvalidation/src/test/resources/pnf/r816745/csar-with-pm-dictionary.csar |