From 2b293e3d6c9c2ff693ccebf8ee757980cf6e2499 Mon Sep 17 00:00:00 2001 From: Bogumil Zebek Date: Wed, 29 May 2019 13:40:50 +0200 Subject: Clearer message Change-Id: I1ca7c3596e55c4b6c58d3ccb8224929e8575176d Issue-ID: VNFSDK-412 Signed-off-by: Zebek Bogumil --- .../cvc/csar/cc/sol004/VTPValidateCSARR146092.java | 20 ++++--- .../cvc/csar/cc/sol004/VTPValidateCSARR57019.java | 26 +++++++-- .../cvc/csar/cc/sol004/VTPValidateCSARR87234.java | 9 +-- .../VTPValidateCSARR10087IntegrationTest.java | 3 +- .../VTPValidateCSARR146092IntegrationTest.java | 16 ++++++ .../VTPValidateCSARR57019IntegrationTest.java | 16 ++++++ .../VTPValidateCSARR87234IntegrationTest.java | 62 +++++++++++++++++++++ .../src/test/resources/pnf/noToscaMetaFile.csar | Bin 0 -> 3621 bytes .../test/resources/pnf/r10087/noToscaMetaFile.csar | Bin 3621 -> 0 bytes 9 files changed, 133 insertions(+), 19 deletions(-) create mode 100644 csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR87234IntegrationTest.java create mode 100644 csarvalidation/src/test/resources/pnf/noToscaMetaFile.csar delete mode 100644 csarvalidation/src/test/resources/pnf/r10087/noToscaMetaFile.csar (limited to 'csarvalidation') diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR146092.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR146092.java index 3d767ff..95b35bf 100644 --- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR146092.java +++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR146092.java @@ -29,6 +29,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -58,10 +59,11 @@ public class VTPValidateCSARR146092 extends VTPValidateCSARBase { @Override protected void validateCSAR(CSARArchive csar) { - ValidateNonManoSection validateNonManoSection = ValidateNonManoSection.getInstance(csar); - List csarErrors = validateNonManoSection.validate(); - - this.errors.addAll(csarErrors); + Optional validateNonManoSection = ValidateNonManoSection.getInstance(csar); + if(validateNonManoSection.isPresent()) { + List csarErrors = validateNonManoSection.get().validate(); + this.errors.addAll(csarErrors); + } } @@ -71,10 +73,14 @@ public class VTPValidateCSARR146092 extends VTPValidateCSARBase { private final Map>> nonMano; private final List errors = new ArrayList<>(); - static ValidateNonManoSection getInstance(CSARArchive csar) { - final String fileName = csar.getManifestMfFile().getName(); + static Optional getInstance(CSARArchive csar) { + final File manifestMfFile = csar.getManifestMfFile(); + if(manifestMfFile == null){ + return Optional.empty(); + } + final String fileName = manifestMfFile.getName(); final Map>> nonMano = csar.getManifest().getNonMano(); - return new ValidateNonManoSection(csar, fileName,nonMano); + return Optional.of(new ValidateNonManoSection(csar, fileName,nonMano)); } private ValidateNonManoSection(CSARArchive csar, String fileName, Map>> nonMano) { diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR57019.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR57019.java index 3dea564..dc507dd 100644 --- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR57019.java +++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR57019.java @@ -23,6 +23,7 @@ import org.onap.cvc.csar.CSARArchive; import org.onap.cvc.csar.PnfCSARError.PnfCSARErrorEntryMissing; import org.onap.cvc.csar.cc.VTPValidateCSARBase; +import java.io.File; import java.util.Objects; @OnapCommandSchema(schema = "vtp-validate-csar-r57019.yaml") @@ -30,15 +31,28 @@ public class VTPValidateCSARR57019 extends VTPValidateCSARBase { private static final int UNKNOWN_LINE_NUMBER = -1; + public static class ToscaMetaNotAvailableError extends CSARArchive.CSARErrorInvalidEntryValue { + public ToscaMetaNotAvailableError() { + super("", + "CSAR Archive", + "Unable to find TOSCA.meta file in TOSCA-metadata directory.",""); + this.setCode("0x1000"); + } + } + @Override protected void validateCSAR(CSARArchive csar) { - final CSARArchive.Manifest.Metadata metadata = csar.getManifest().getMetadata(); - final String fileName = csar.getManifestMfFile().getName(); + final CSARArchive.Manifest manifest = csar.getManifest(); + final CSARArchive.Manifest.Metadata metadata = manifest.getMetadata(); + final File manifestMfFile = csar.getManifestMfFile(); + if(manifestMfFile!=null) { + final String fileName = manifestMfFile.getName(); - validateMetadataValue(fileName, metadata.getProviderId(), "pnfd_provider"); - validateMetadataValue(fileName, metadata.getProductName(), "pnfd_name"); - validateMetadataValue(fileName, metadata.getReleaseDateTime(), "pnfd_release_date_time"); - validateMetadataValue(fileName, metadata.getPackageVersion(), "pnfd_archive_version"); + validateMetadataValue(fileName, metadata.getProviderId(), "pnfd_provider"); + validateMetadataValue(fileName, metadata.getProductName(), "pnfd_name"); + validateMetadataValue(fileName, metadata.getReleaseDateTime(), "pnfd_release_date_time"); + validateMetadataValue(fileName, metadata.getPackageVersion(), "pnfd_archive_version"); + } } diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR87234.java b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR87234.java index 6400012..259d32f 100644 --- a/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR87234.java +++ b/csarvalidation/src/main/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR87234.java @@ -24,10 +24,11 @@ import org.onap.cvc.csar.cc.VTPValidateCSARBase; @OnapCommandSchema(schema = "vtp-validate-csar-r87234.yaml") public class VTPValidateCSARR87234 extends VTPValidateCSARBase { - public static class CSARErrorInvalidEntryValueNonToscaMetaNotSupported extends CSARErrorInvalidEntryValue { - public CSARErrorInvalidEntryValueNonToscaMetaNotSupported() { - super("CSAR Mode", "CSAR Archive", - "Only " + CSARArchive.Mode.WITH_TOSCA_META_DIR.name() + " mode is supported", + static class CSARErrorInvalidEntryValueNonToscaMetaNotSupported extends CSARErrorInvalidEntryValue { + CSARErrorInvalidEntryValueNonToscaMetaNotSupported() { + super("CSAR Mode", + "CSAR Archive", + "Only csar package with TOSCA-Metadata directory is supported. Unable to find TOSCA.meta file in TOSCA-metadata directory.", CSARArchive.Mode.WITH_TOSCA_META_DIR.name()); this.setCode("0x1000"); } diff --git a/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087IntegrationTest.java b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087IntegrationTest.java index 136baf0..7016a92 100644 --- a/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087IntegrationTest.java +++ b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR10087IntegrationTest.java @@ -19,7 +19,6 @@ package org.onap.cvc.csar.cc.sol004; import org.junit.Before; import org.junit.Test; -import org.onap.cli.fw.output.OnapCommandResult; import org.onap.cvc.csar.CSARArchive; import java.util.List; @@ -46,7 +45,7 @@ public class VTPValidateCSARR10087IntegrationTest { @Test public void shouldReportThatDefinitionYAMLIsNotAvailable() throws Exception { // given - configureTestCase(testCase, "pnf/r10087/noToscaMetaFile.csar"); + configureTestCase(testCase, "pnf/noToscaMetaFile.csar"); // when testCase.execute(); diff --git a/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR146092IntegrationTest.java b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR146092IntegrationTest.java index d5cb153..a59282c 100644 --- a/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR146092IntegrationTest.java +++ b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR146092IntegrationTest.java @@ -115,4 +115,20 @@ public class VTPValidateCSARR146092IntegrationTest { ); } + @Test + public void shouldReportThatDefinitionYAMLIsNotAvailableWhenToscaMetaFileIsNotPresent() throws Exception { + // given + configureTestCase(testCase, "pnf/noToscaMetaFile.csar"); + + // when + testCase.execute(); + + // then + List errors = testCase.getErrors(); + assertThat(errors.size()).isEqualTo(4); + assertThat(convertToMessagesList(errors)).contains( + "Missing. Entry [Definition YAML]" + ); + } + } \ No newline at end of file diff --git a/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR57019IntegrationTest.java b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR57019IntegrationTest.java index 8ec88ea..2328f2c 100644 --- a/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR57019IntegrationTest.java +++ b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR57019IntegrationTest.java @@ -75,4 +75,20 @@ public class VTPValidateCSARR57019IntegrationTest { assertThat(errors.size()).isEqualTo(0); } + @Test + public void shouldReportThatDefinitionYAMLIsNotAvailableWhenToscaMetaFileIsNotPresent() throws Exception { + // given + configureTestCase(testCase, "pnf/noToscaMetaFile.csar"); + + // when + testCase.execute(); + + // then + List errors = testCase.getErrors(); + assertThat(errors.size()).isEqualTo(4); + assertThat(convertToMessagesList(errors)).contains( + "Missing. Entry [Definition YAML]" + ); + } + } \ No newline at end of file diff --git a/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR87234IntegrationTest.java b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR87234IntegrationTest.java new file mode 100644 index 0000000..55ec14c --- /dev/null +++ b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR87234IntegrationTest.java @@ -0,0 +1,62 @@ +/* + * Copyright 2019 Nokia + *

+ * 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. + * + */ + +package org.onap.cvc.csar.cc.sol004; + +import org.junit.Before; +import org.junit.Test; +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; +import static org.onap.cvc.csar.cc.sol004.IntegrationTestUtils.convertToMessagesList; + + +public class VTPValidateCSARR87234IntegrationTest { + + private VTPValidateCSARR87234 testCase; + + @Before + public void setUp() { + testCase = new VTPValidateCSARR87234(); + } + + @Test + public void shouldReturnProperRequestNumber() { + assertThat(testCase.getVnfReqsNo()).isEqualTo("R87234"); + } + + + @Test + public void shouldReportThatToscaMetadataDirectoryIsNotPresent() throws Exception { + // given + configureTestCase(testCase, "pnf/noToscaMetaFile.csar"); + + // when + testCase.execute(); + + // then + List errors = testCase.getErrors(); + assertThat(errors.size()).isEqualTo(5); + assertThat(convertToMessagesList(errors)).contains( + "Invalid value. Entry [CSAR Mode]. Valid values are [WITH_TOSCA_META_DIR]. Only csar package with TOSCA-Metadata directory is supported. Unable to find TOSCA.meta file in TOSCA-metadata directory." + ); + } + +} \ No newline at end of file diff --git a/csarvalidation/src/test/resources/pnf/noToscaMetaFile.csar b/csarvalidation/src/test/resources/pnf/noToscaMetaFile.csar new file mode 100644 index 0000000..331da92 Binary files /dev/null and b/csarvalidation/src/test/resources/pnf/noToscaMetaFile.csar differ diff --git a/csarvalidation/src/test/resources/pnf/r10087/noToscaMetaFile.csar b/csarvalidation/src/test/resources/pnf/r10087/noToscaMetaFile.csar deleted file mode 100644 index 331da92..0000000 Binary files a/csarvalidation/src/test/resources/pnf/r10087/noToscaMetaFile.csar and /dev/null differ -- cgit 1.2.3-korg