summaryrefslogtreecommitdiffstats
path: root/csarvalidation/src/test/java/org/onap
diff options
context:
space:
mode:
authorBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>2020-05-19 11:39:49 +0200
committerBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>2020-06-24 08:02:34 +0200
commit15640aa55716f0164a58c7d24c268102590f087b (patch)
tree5fe747f52d34cc07de71a7ff78b3d8781bd0fbd5 /csarvalidation/src/test/java/org/onap
parentc7e44c66f3f1491438ec54868384761de7343f77 (diff)
Add new rule for validation, if every files located in CSAR are listed in manifest
Issue-ID: VNFSDK-583 Signed-off-by: Bartosz Gardziejewski <bartosz.gardziejewski@nokia.com> Change-Id: I96bf65b1988cd0a9549f2cd536f29a467f50a51f
Diffstat (limited to 'csarvalidation/src/test/java/org/onap')
-rw-r--r--csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR01123IntegrationTest.java126
1 files changed, 126 insertions, 0 deletions
diff --git a/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR01123IntegrationTest.java b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR01123IntegrationTest.java
new file mode 100644
index 0000000..8f6ebbe
--- /dev/null
+++ b/csarvalidation/src/test/java/org/onap/cvc/csar/cc/sol004/VTPValidateCSARR01123IntegrationTest.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2020 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.assertj.core.api.Condition;
+import org.assertj.core.api.HamcrestCondition;
+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.hamcrest.CoreMatchers.allOf;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.onap.cvc.csar.cc.sol004.IntegrationTestUtils.configureTestCase;
+import static org.onap.cvc.csar.cc.sol004.IntegrationTestUtils.convertToMessagesList;
+
+public class VTPValidateCSARR01123IntegrationTest {
+
+ private static final boolean IS_PNF = true;
+ private static final String TEST_CSAR_DIRECTORY = "pnf/r01123/";
+
+ private VTPValidateCSARR01123 testCase;
+
+ @Before
+ public void setUp() {
+ testCase = new VTPValidateCSARR01123();
+ }
+
+ @Test
+ public void shouldReturnProperRequestNumber() {
+ assertThat(testCase.getVnfReqsNo()).isEqualTo("R01123");
+ }
+
+ @Test
+ public void shouldReportThatVendorNameAndVersionAreMissing() throws Exception {
+ // given
+ configureTestCase(testCase, TEST_CSAR_DIRECTORY + "csar-option1-invalid-noVendor.csar", "vtp-validate-csar-r01123.yaml", IS_PNF);
+
+ // when
+ testCase.execute();
+
+ // then
+ List<CSARArchive.CSARError> errors = testCase.getErrors();
+ assertThat(errors.size()).isEqualTo(3);
+ assertThat(convertToMessagesList(errors)).contains(
+ "Missing. Entry [TOSCA-Meta-File-Version]",
+ "Missing. Entry [VNF Vendor details]",
+ "Missing. Entry [Created-by]"
+ );
+ }
+
+ @Test
+ public void shouldReportThatFileIsNotPresentInSources() throws Exception {
+ // given
+ configureTestCase(testCase, TEST_CSAR_DIRECTORY + "csar-option1-invalid-noFileInManifest.csar", "vtp-validate-csar-r01123.yaml", IS_PNF);
+
+ // when
+ testCase.execute();
+
+ Condition<String> containingMissingFiles = new HamcrestCondition<>(allOf(
+ containsString("TOSCA-Metadata/TOSCA.meta"),
+ containsString("Artifacts/Deployment/Yang_module/yang-module2.yang"),
+ containsString("Artifacts/Deployment/Yang_module/yang-module1.yang"),
+ containsString("Artifacts/Informational/user_guide.txt"),
+ containsString("Artifacts/sample-pnf.cert")
+ ));
+
+ // then
+ List<CSARArchive.CSARError> errors = testCase.getErrors();
+ assertThat(errors.size()).isEqualTo(1);
+ assertThat(convertToMessagesList(errors)).haveExactly(1, containingMissingFiles);
+ }
+
+ @Test
+ public void shouldReportThatVendorNameIsMissingAndThatFileIsNotPresentInSource() throws Exception {
+ // given
+ configureTestCase(testCase, TEST_CSAR_DIRECTORY + "csar-option1-invalid-noVendor-noFileInManifest.csar", "vtp-validate-csar-r01123.yaml", IS_PNF);
+
+ // when
+ testCase.execute();
+
+ Condition<String> containingMissingFiles = new HamcrestCondition<>(allOf(
+ containsString("Artifacts/Informational/user_guide.txt")
+ ));
+
+ // then
+ List<CSARArchive.CSARError> errors = testCase.getErrors();
+ assertThat(errors.size()).isEqualTo(3);
+ assertThat(convertToMessagesList(errors)).contains(
+ "Missing. Entry [VNF Vendor details]",
+ "Missing. Entry [Created-by]"
+ );
+ assertThat(convertToMessagesList(errors)).haveExactly(1, containingMissingFiles);
+ }
+
+ @Test
+ public void shouldNotReportAnyErrorWhenAllFilesPresentInCsarArePresentInSources() throws Exception {
+ // given
+ configureTestCase(testCase, TEST_CSAR_DIRECTORY + "csar-option1-valid.csar", "vtp-validate-csar-r01123.yaml", IS_PNF);
+
+ // when
+ testCase.execute();
+
+ // then
+ List<CSARArchive.CSARError> errors = testCase.getErrors();
+ assertThat(errors.size()).isEqualTo(0);
+ }
+
+}