summaryrefslogtreecommitdiffstats
path: root/csarvalidation/src/test/java/org/onap/functional/PnfValidationFunctionalTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'csarvalidation/src/test/java/org/onap/functional/PnfValidationFunctionalTest.java')
-rw-r--r--csarvalidation/src/test/java/org/onap/functional/PnfValidationFunctionalTest.java106
1 files changed, 99 insertions, 7 deletions
diff --git a/csarvalidation/src/test/java/org/onap/functional/PnfValidationFunctionalTest.java b/csarvalidation/src/test/java/org/onap/functional/PnfValidationFunctionalTest.java
index 576f763..2038eca 100644
--- a/csarvalidation/src/test/java/org/onap/functional/PnfValidationFunctionalTest.java
+++ b/csarvalidation/src/test/java/org/onap/functional/PnfValidationFunctionalTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright 2020 Nokia
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -27,6 +27,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.onap.cvc.csar.cc.sol004.IntegrationTestUtils.absoluteFilePath;
import static org.onap.functional.CsarValidationUtility.CERTIFICATION_RULE;
import static org.onap.functional.CsarValidationUtility.MANIFEST_FILE_RULE;
+import static org.onap.functional.CsarValidationUtility.NON_MANO_FILES_RULE;
import static org.onap.functional.CsarValidationUtility.OPERATION_STATUS_FAILED;
import static org.onap.functional.CsarValidationUtility.OPERATION_STATUS_PASS;
import static org.onap.functional.CsarValidationUtility.PM_DICTIONARY_YAML_RULE;
@@ -86,7 +87,7 @@ public class PnfValidationFunctionalTest {
List<OnapCliValidationResponseWrapper.ValidationResultWrapper.ValidationErrorWrapper> expectedErrors =
List.of(
createExpectedError(CERTIFICATION_RULE, "0x4007",
- "File has invalid signature!"),
+ "Manifest file has invalid signature!"),
createExpectedError(CERTIFICATION_RULE, "0x4004",
"Source 'Files/pnf-sw-information/pnf-sw-information.yaml' has wrong hash!"),
createExpectedError(CERTIFICATION_RULE, "0x4011",
@@ -123,7 +124,7 @@ public class PnfValidationFunctionalTest {
List<OnapCliValidationResponseWrapper.ValidationResultWrapper.ValidationErrorWrapper> expectedErrors =
List.of(
createExpectedError(CERTIFICATION_RULE, "0x4007",
- "File has invalid signature!"),
+ "Manifest file has invalid signature!"),
createExpectedError(CERTIFICATION_RULE, "0x4004",
"Source 'Files/pnf-sw-information/pnf-sw-information.yaml' has wrong hash!"),
createExpectedError(CERTIFICATION_RULE, "0x4011",
@@ -189,7 +190,7 @@ public class PnfValidationFunctionalTest {
List<OnapCliValidationResponseWrapper.ValidationResultWrapper.ValidationErrorWrapper> expectedErrors =
List.of(
createExpectedError(CERTIFICATION_RULE, "0x4007",
- "File has invalid signature!"),
+ "Manifest file has invalid signature!"),
createExpectedError(CERTIFICATION_RULE, "0x4004",
"Source 'Files/pnf-sw-information/pnf-sw-information.yaml' has wrong hash!"),
createExpectedError(CERTIFICATION_RULE, "0x4011",
@@ -231,14 +232,14 @@ public class PnfValidationFunctionalTest {
List<OnapCliValidationResponseWrapper.ValidationResultWrapper.ValidationErrorWrapper> expectedCertificationErrors =
List.of(
createExpectedError(CERTIFICATION_RULE, "0x4020",
- "Source 'Files/ChangeLog.txt' has incorrect signature!"),
+ "Source 'Files/Scripts/my_script.sh' has incorrect signature!"),
createExpectedError(CERTIFICATION_RULE, "0x4007",
- "File has invalid signature!")
+ "Manifest file has invalid signature!")
);
List<OnapCliValidationResponseWrapper.ValidationResultWrapper.ValidationErrorWrapper> expectedManifestErrors =
List.of(
createExpectedError(MANIFEST_FILE_RULE, "0x1001",
- "file(s): [Files/pnf-sw-information/pnf-sw-information.cert, Files/pnf-sw-information/pnf-sw-information.sig.cms] available in CSAR, but cannot be found in Manifest as Source",
+ "file(s): [Files/Scripts/my_script.cert, Files/Scripts/my_script.sig.cms] available in CSAR, but cannot be found in Manifest as Source",
"TOSCA-Metadata"
)
);
@@ -268,6 +269,97 @@ public class PnfValidationFunctionalTest {
verifyThatOperationFinishedWithoutAnyError(cli);
}
+ @Test
+ public void shouldReportThatIndividualArtifactsHaveMultipleIncorrectCertificatesAndSignatures() throws URISyntaxException {
+ // given
+ List<OnapCliValidationResponseWrapper.ValidationResultWrapper.ValidationErrorWrapper> expectedCertificationErrors =
+ List.of(
+ createExpectedError(CERTIFICATION_RULE, "0x4018",
+ "Source 'Artifacts/Deployment/Measurements/PM_Dictionary.yml' has 'signature' tag, pointing to non existing file!. Pointed file 'Artifacts/Deployment/Measurements/PM_Dictionary.sig.cms'"),
+ createExpectedError(CERTIFICATION_RULE, "0x4023",
+ "Source 'Artifacts/Deployment/Yang_module/yang-module1.yang' has 'signature' file with wrong name, signature name: 'yang-module.sig.cms'.Signature should have same name as source file!"),
+ createExpectedError(CERTIFICATION_RULE, "0x4023",
+ "Source 'Artifacts/Deployment/Yang_module/yang-module1.yang' has 'certificate' file with wrong name, signature name: 'yang-module.cert'.Signature should have same name as source file!"),
+ createExpectedError(CERTIFICATION_RULE, "0x4020",
+ "Source 'Artifacts/Other/my_script.csh' has incorrect signature!"),
+ createExpectedError(CERTIFICATION_RULE, "0x4022",
+ "Source 'Artifacts/Informational/user_guide.txt' has 'signature' file located in wrong directory, directory: 'Artifacts/user_guide.sig.cms'.Signature should be in same directory as source file!"),
+ createExpectedError(CERTIFICATION_RULE, "0x4022",
+ "Source 'Artifacts/Informational/user_guide.txt' has 'certificate' file located in wrong directory, directory: 'Artifacts/user_guide.cert'.Signature should be in same directory as source file!"),
+ createExpectedError(CERTIFICATION_RULE, "0x4007",
+ "Manifest file has invalid signature!")
+ );
+ List<OnapCliValidationResponseWrapper.ValidationResultWrapper.ValidationErrorWrapper> expectedManifestErrors =
+ List.of(
+ createExpectedError(MANIFEST_FILE_RULE, "0x1001",
+ "file(s): [TOSCA-Metadata/TOSCA.meta, Definitions/MainServiceTemplate.yaml, Artifacts/Deployment/Yang_module/yang-module2.yang, Artifacts/Deployment/Yang_module/yang-module.cert, Artifacts/Deployment/Yang_module/yang-module.sig.cms, Artifacts/ChangeLog.txt, Artifacts/sample-pnf.cert] available in CSAR, but cannot be found in Manifest as Source",
+ "TOSCA-Metadata"
+ )
+ );
+ List<OnapCliValidationResponseWrapper.ValidationResultWrapper.ValidationErrorWrapper> expectedPnfDictionaryErrors =
+ List.of(
+ createExpectedError(PM_DICTIONARY_YAML_RULE, "0x2000",
+ "Fail to load PM_Dictionary With error: PM_Dictionary YAML file is empty",
+ "Artifacts/Deployment/Measurements/PM_Dictionary.yml"
+ )
+ );
+ List<OnapCliValidationResponseWrapper.ValidationResultWrapper.ValidationErrorWrapper> expectedNonManoFilesErrors =
+ List.of(
+ createExpectedError(NON_MANO_FILES_RULE, "0x2002",
+ "Missing. Entry [Source under onap_ves_events]",
+ "MainServiceTemplate.mf"
+ ),
+ createExpectedError(NON_MANO_FILES_RULE, "0x2002",
+ "Missing. Entry [onap_yang_module]",
+ "MainServiceTemplate.mf"
+ ),
+ createExpectedError(NON_MANO_FILES_RULE, "0x2002",
+ "Missing. Entry [Source under onap_others]]",
+ "MainServiceTemplate.mf"
+ ),
+ createExpectedError(NON_MANO_FILES_RULE, "0x2002",
+ "Missing. Entry [Source under onap_pm_dictionary]",
+ "MainServiceTemplate.mf"
+ )
+ );
+ OnapCliWrapper cli = new OnapCliWrapper(createPnfValidationRequestInfo(
+ "pnf/r130206/csar-cert-in-tosca-multiple-individual-signature.csar"
+ ));
+
+ // when
+ cli.handle();
+
+ // then
+ final OnapCliValidationResponseWrapper result = getCliCommandValidationResult(cli);
+
+ assertThat(result.criteria).isEqualTo(OPERATION_STATUS_FAILED);
+ result.results.forEach((ruleValidationResult)->{
+ assertThat(ruleValidationResult.warnings).isEmpty();
+ switch (ruleValidationResult.vnfreqName) {
+ case CERTIFICATION_RULE:
+ assertThat(ruleValidationResult.errors)
+ .containsAll(expectedCertificationErrors);
+ break;
+ case MANIFEST_FILE_RULE:
+ assertThat(ruleValidationResult.errors)
+ .containsAll(expectedManifestErrors);
+ break;
+ case PM_DICTIONARY_YAML_RULE:
+ assertThat(ruleValidationResult.errors)
+ .containsAll(expectedPnfDictionaryErrors);
+ break;
+ case NON_MANO_FILES_RULE:
+ assertThat(ruleValidationResult.errors)
+ .containsAll(expectedNonManoFilesErrors);
+ break;
+ default:
+ assertThat(ruleValidationResult.errors).isEmpty();
+ break;
+ }
+ });
+ verifyThatOperationFinishedWithoutAnyError(cli);
+ }
+
private String[] createPnfValidationRequestInfo(String csarPath) throws URISyntaxException {
return new String[]{
"--product", "onap-dublin",