From 59d7428cd46159897c3412efa799e9ac46949d0c Mon Sep 17 00:00:00 2001 From: Bartosz Gardziejewski Date: Wed, 7 Oct 2020 11:30:01 +0200 Subject: Refactor functional tests for CSAR validation. Signed-off-by: Bartosz Gardziejewski Change-Id: Icaa53313d66a01dccc779959b49b74857402cb71 Issue-ID: VNFSDK-661 --- .../java/org/onap/cvc/csar/CsarValidatorTest.java | 180 --------------------- 1 file changed, 180 deletions(-) delete mode 100644 csarvalidation/src/test/java/org/onap/cvc/csar/CsarValidatorTest.java (limited to 'csarvalidation/src/test/java/org/onap/cvc/csar') diff --git a/csarvalidation/src/test/java/org/onap/cvc/csar/CsarValidatorTest.java b/csarvalidation/src/test/java/org/onap/cvc/csar/CsarValidatorTest.java deleted file mode 100644 index 491b20a..0000000 --- a/csarvalidation/src/test/java/org/onap/cvc/csar/CsarValidatorTest.java +++ /dev/null @@ -1,180 +0,0 @@ -/** - * Copyright 2017 Huawei Technologies Co., Ltd. - * 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; - -import org.apache.commons.lang3.StringUtils; -import org.assertj.core.api.Assertions; -import org.junit.Test; -import org.onap.cli.fw.cmd.OnapCommand; -import org.onap.cli.fw.error.OnapCommandException; -import org.onap.cli.fw.output.OnapCommandResult; -import org.onap.cli.fw.output.OnapCommandResultAttribute; -import org.onap.cli.main.OnapCli; - -import java.net.URISyntaxException; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.onap.cvc.csar.cc.sol004.IntegrationTestUtils.absoluteFilePath; - - -public class CsarValidatorTest { - - private static final String CERTIFICATION_RULE = "r130206"; - private static final String OPERATION_STATUS_FAILED = "FAILED"; - private static final String OPERATION_STATUS_PASS = "PASS"; - - @Test - public void shouldReportThanVnfValidationFailed() throws URISyntaxException { - // given - OnapCliWrapper cli = new OnapCliWrapper(new String[]{ - "--product", "onap-dublin", - "csar-validate", - "--format", "json", - "--csar", absoluteFilePath("VoLTE.csar")}); - - // when - cli.handle(); - - // then - final OnapCommandResult onapCommandResult = cli.getCommandResult(); - verifyThatOperation(onapCommandResult, OPERATION_STATUS_FAILED); - verifyThatXRulesFails(onapCommandResult, 7); - verifyThatOperationFinishedWithoutAnyError(cli); - } - - - @Test - public void shouldReportOnlyWarningWhenCsarDoNotHaveCertificateAndHashesInManifest() throws URISyntaxException { - // given - OnapCliWrapper cli = new OnapCliWrapper(new String[]{ - "--product", "onap-dublin", - "csar-validate", - "--format", "json", - "--pnf", - "--csar", absoluteFilePath("pnf/validFile.csar")}); - // when - cli.handle(); - - // then - final OnapCommandResult onapCommandResult = cli.getCommandResult(); - verifyThatOperation(onapCommandResult, OPERATION_STATUS_PASS); - assertTrue(onapCommandResult.getOutput().toString().contains( - "\"warnings\":[{" + - "\"vnfreqNo\":\"R130206\"," + - "\"code\":\"0x1006\"," + - "\"message\":\"Warning. Consider adding package integrity and authenticity assurance according to ETSI NFV-SOL 004 Security Option 1\"," + - "\"file\":\"\"," + - "\"lineNumber\":-1}]")); - verifyThatOperationFinishedWithoutAnyError(cli); - } - - @Test - public void shouldNotReportThatPnfValidationFailedWhenZipDoNotHaveCertificatesAndHashesInManifest() throws URISyntaxException { - // given - OnapCliWrapper cli = new OnapCliWrapper(new String[]{ - "--product", "onap-dublin", - "csar-validate", - "--format", "json", - "--pnf", - "--csar", absoluteFilePath("pnf/signed-package-valid-signature.zip")}); - - // when - cli.handle(); - - // then - final OnapCommandResult onapCommandResult = cli.getCommandResult(); - verifyThatOperation(onapCommandResult, OPERATION_STATUS_PASS); - verifyThatOperationFinishedWithoutAnyError(cli); - } - - @Test - public void shouldReportThatPnfValidationFailedWhenCsarContainsCertificateInCmsAndInToscaAndInRootAndHashIsIncorrect_allOtherRulesShouldPass() throws URISyntaxException { - // given - OnapCliWrapper cli = new OnapCliWrapper(new String[]{ - "--product", "onap-dublin", - "csar-validate", - "--format", "json", - "--pnf", - "--csar", absoluteFilePath("pnf/r130206/cert-in-cms-and-root-and-tosca-incorrect-hash.csar")}); - // when - cli.handle(); - - // then - final OnapCommandResult onapCommandResult = cli.getCommandResult(); - verifyThatOperation(onapCommandResult, OPERATION_STATUS_FAILED); - verifyThatXRulesFails(onapCommandResult, 1); - verifyThatRuleFails(onapCommandResult, CERTIFICATION_RULE); - verifyThatOperationFinishedWithoutAnyError(cli); - } - - private void verifyThatXRulesFails(OnapCommandResult onapCommandResult, int noOfRules) { - verifyDataOccurrenceInResult(onapCommandResult, "\"passed\":false", noOfRules); - } - - private void verifyThatRuleFails(OnapCommandResult onapCommandResult, String nameOfRule) { - final String value = String.format("\"passed\":false,\"vnfreqName\":\"%s\"", nameOfRule); - verifyDataOccurrenceInResult(onapCommandResult, value, 1); - } - - private void verifyDataOccurrenceInResult(OnapCommandResult onapCommandResult, String data, int dataOccurrence) { - final String json = getResultValue(onapCommandResult, "results"); - int occurrence = StringUtils.countMatches(json, data); - Assertions.assertThat(occurrence).isEqualTo(dataOccurrence); - } - - private void verifyThatOperation(OnapCommandResult onapCommandResult, String operationStatus) { - final String value = getResultValue(onapCommandResult, "criteria"); - Assertions.assertThat(value).isEqualTo(operationStatus); - } - - private String getResultValue(OnapCommandResult onapCommandResult, String attributeName) { - final OnapCommandResultAttribute results = getOnapCommandResultAttribute(onapCommandResult, attributeName); - return results.getValues().get(0); - } - - private OnapCommandResultAttribute getOnapCommandResultAttribute(OnapCommandResult onapCommandResult, String name) { - return onapCommandResult.getRecords().stream() - .filter(it -> it.getName().equals(name)) - .findFirst() - .orElseThrow(() -> new RuntimeException(String.format("Unable to find '%s' attribute!", name))); - } - - private void verifyThatOperationFinishedWithoutAnyError(OnapCliWrapper cli) { - assertEquals(0, cli.getExitCode()); - } - - static class OnapCliWrapper extends OnapCli { - - private OnapCommandResult commandResult; - - OnapCliWrapper(String[] args) { - super(args); - } - - @Override - public void handleTracking(OnapCommand cmd) throws OnapCommandException { - super.handleTracking(cmd); - this.commandResult = cmd.getResult(); - } - - OnapCommandResult getCommandResult() { - return this.commandResult; - } - } -} -- cgit 1.2.3-korg