summaryrefslogtreecommitdiffstats
path: root/pmdictionaryvalidation/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'pmdictionaryvalidation/src/test')
-rw-r--r--pmdictionaryvalidation/src/test/java/org/onap/functional/PmDictionaryValidateRuleFunctionalTest.java133
-rw-r--r--pmdictionaryvalidation/src/test/java/org/onap/functional/util/OnapCliWrapper.java42
-rw-r--r--pmdictionaryvalidation/src/test/java/org/onap/functional/util/ValidationUtility.java49
-rw-r--r--pmdictionaryvalidation/src/test/java/org/onap/validation/cli/MainCITest.java2
-rw-r--r--pmdictionaryvalidation/src/test/java/org/onap/validation/cli/command/validate/ToJsonConverterTest.java3
-rw-r--r--pmdictionaryvalidation/src/test/java/org/onap/validation/cli/command/validate/ValidateYamlCommandTest.java2
-rw-r--r--pmdictionaryvalidation/src/test/java/org/onap/validation/cli/util/ToResponseModelConverter.java32
7 files changed, 228 insertions, 35 deletions
diff --git a/pmdictionaryvalidation/src/test/java/org/onap/functional/PmDictionaryValidateRuleFunctionalTest.java b/pmdictionaryvalidation/src/test/java/org/onap/functional/PmDictionaryValidateRuleFunctionalTest.java
new file mode 100644
index 0000000..fc212e7
--- /dev/null
+++ b/pmdictionaryvalidation/src/test/java/org/onap/functional/PmDictionaryValidateRuleFunctionalTest.java
@@ -0,0 +1,133 @@
+/*
+ * Copyright 2020 Nokia
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.functional;
+
+import org.junit.Test;
+import org.onap.functional.util.OnapCliWrapper;
+import org.onap.validation.rule.PMDictionaryValidate;
+import org.onap.validation.rule.PMDictionaryValidateResponse;
+
+import java.net.URISyntaxException;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.onap.functional.util.ValidationUtility.OPERATION_STATUS_FAILED;
+import static org.onap.functional.util.ValidationUtility.OPERATION_STATUS_PASS;
+import static org.onap.functional.util.ValidationUtility.getCliCommandValidationResult;
+import static org.onap.functional.util.ValidationUtility.verifyThatOperationFinishedWithError;
+import static org.onap.functional.util.ValidationUtility.verifyThatOperationFinishedWithoutAnyError;
+
+
+public class PmDictionaryValidateRuleFunctionalTest {
+
+
+ private static final String YAML_SCHEMA_SIMPLE_VALID_SCHEMA_YAML = "yaml_schema/Simple_Valid_Schema.yaml";
+ private static final String NO_ERRORS = "[]";
+ private static final String YAML_SCHEMA_PM_DICTIONARY_YAML = "yaml_schema/PM_Dictionary.yaml";
+ private static final String PATH_TO_NON_EXITING_FILE_YAML = "path/to/nonExitingFile.yaml";
+ private static final String NOT_YAML_FILE_TXT = "Not_Yaml_File.txt";
+
+ @Test
+ public void shouldSuccessfullyValidatePMDictionaryYamlFile() throws URISyntaxException {
+ // given
+ OnapCliWrapper cli = new OnapCliWrapper(createPnfValidationRequestInfo(YAML_SCHEMA_SIMPLE_VALID_SCHEMA_YAML));
+
+ // when
+ cli.handle();
+
+ // then
+ final PMDictionaryValidateResponse result = getCliCommandValidationResult(cli, PMDictionaryValidateResponse.class);
+
+ assertThat(result.getFile()).contains(YAML_SCHEMA_SIMPLE_VALID_SCHEMA_YAML);
+ assertThat(result.getPlatform()).contains(PMDictionaryValidateResponse.PLATFORM_VTP_1_0);
+ assertThat(result.getContact()).contains(PMDictionaryValidateResponse.ONAP_DISCUSS_LISTS_ONAP_ORG);
+ assertThat(result.getCriteria()).isEqualTo(OPERATION_STATUS_PASS);
+ assertThat(result.getErrors()).isEqualTo(NO_ERRORS);
+ verifyThatOperationFinishedWithoutAnyError(cli);
+ }
+
+ @Test
+ public void shouldFailsWhenPMDictionaryYamlFileHasSomeErrors() throws URISyntaxException {
+ // given
+ OnapCliWrapper cli = new OnapCliWrapper(createPnfValidationRequestInfo(YAML_SCHEMA_PM_DICTIONARY_YAML));
+
+ // when
+ cli.handle();
+
+ // then
+ final PMDictionaryValidateResponse result = getCliCommandValidationResult(cli, PMDictionaryValidateResponse.class);
+
+ assertThat(result.getFile()).contains(YAML_SCHEMA_PM_DICTIONARY_YAML);
+ assertThat(result.getPlatform()).contains(PMDictionaryValidateResponse.PLATFORM_VTP_1_0);
+ assertThat(result.getContact()).contains(PMDictionaryValidateResponse.ONAP_DISCUSS_LISTS_ONAP_ORG);
+ assertThat(result.getCriteria()).isEqualTo(OPERATION_STATUS_FAILED);
+ final String errors = result.getErrors();
+ assertThat(errors).contains(
+ "Value(s) is/are not in array of accepted values.",
+ "accepted value(s): [float, uint32, uint64]",
+ "Key not found: measChangeType",
+ "accepted value(s): [X, Y, Z]"
+ );
+ verifyThatOperationFinishedWithoutAnyError(cli);
+ }
+
+ @Test
+ public void shouldReportAnErrorWhenYamlFileDoesNotExist() {
+ // given
+ OnapCliWrapper cli = new OnapCliWrapper(new String[]{PATH_TO_NON_EXITING_FILE_YAML});
+
+ // when
+ cli.handle();
+
+ verifyThatOperationFinishedWithError(cli);
+ }
+
+
+ @Test
+ public void shouldReportThatValidationFailedWithInternalError() throws URISyntaxException {
+ // given
+ OnapCliWrapper cli = new OnapCliWrapper(createPnfValidationRequestInfo(NOT_YAML_FILE_TXT));
+
+ // when
+ cli.handle();
+
+ // then
+ final PMDictionaryValidateResponse result = getCliCommandValidationResult(cli, PMDictionaryValidateResponse.class);
+
+ assertThat(result.getFile()).contains(NOT_YAML_FILE_TXT);
+ assertThat(result.getPlatform()).contains(PMDictionaryValidateResponse.PLATFORM_VTP_1_0);
+ assertThat(result.getContact()).contains(PMDictionaryValidateResponse.ONAP_DISCUSS_LISTS_ONAP_ORG);
+ assertThat(result.getCriteria()).isEqualTo(OPERATION_STATUS_FAILED);
+ assertThat(result.getErrors()).contains("Provided yaml file has invalid structure!");
+ verifyThatOperationFinishedWithoutAnyError(cli);
+ }
+
+
+ private String[] createPnfValidationRequestInfo(String yamlPath) throws URISyntaxException {
+ return new String[]{
+ "--product", "onap-honolulu",
+ "pm-dictionary-validate",
+ "--format", "json",
+ "--yaml", absoluteFilePath(yamlPath)
+ };
+ }
+
+
+ public static String absoluteFilePath(String relativeFilePath) throws URISyntaxException {
+ return PMDictionaryValidate.class.getClassLoader().getResource(relativeFilePath)
+ .toURI().getPath();
+ }
+}
diff --git a/pmdictionaryvalidation/src/test/java/org/onap/functional/util/OnapCliWrapper.java b/pmdictionaryvalidation/src/test/java/org/onap/functional/util/OnapCliWrapper.java
new file mode 100644
index 0000000..347a7bb
--- /dev/null
+++ b/pmdictionaryvalidation/src/test/java/org/onap/functional/util/OnapCliWrapper.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2020 Nokia
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.functional.util;
+
+
+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.main.OnapCli;
+
+public class OnapCliWrapper extends OnapCli {
+
+ private OnapCommandResult commandResult;
+
+ public OnapCliWrapper(String[] args) {
+ super(args);
+ }
+
+ @Override
+ public void handleTracking(OnapCommand cmd) throws OnapCommandException {
+ super.handleTracking(cmd);
+ this.commandResult = cmd.getResult();
+ }
+
+ public OnapCommandResult getCommandResult() {
+ return this.commandResult;
+ }
+}
diff --git a/pmdictionaryvalidation/src/test/java/org/onap/functional/util/ValidationUtility.java b/pmdictionaryvalidation/src/test/java/org/onap/functional/util/ValidationUtility.java
new file mode 100644
index 0000000..3a497f4
--- /dev/null
+++ b/pmdictionaryvalidation/src/test/java/org/onap/functional/util/ValidationUtility.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2020 Nokia
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.functional.util;
+
+import com.google.gson.Gson;
+import org.onap.cli.fw.output.OnapCommandResult;
+
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+
+public final class ValidationUtility {
+
+ private static final int NO_ERROR_CODE = 0;
+ public static final int ERROR_CODE = 1;
+
+ private ValidationUtility(){}
+
+ public static final String OPERATION_STATUS_PASS = "PASS";
+ public static final String OPERATION_STATUS_FAILED = "FAILED";
+
+ public static <T> T getCliCommandValidationResult(OnapCliWrapper cli, Class<T> clazz) {
+ final OnapCommandResult onapCommandResult = cli.getCommandResult();
+ final String json = onapCommandResult.getOutput().toString();
+ return new Gson().fromJson(json, clazz);
+ }
+
+ public static void verifyThatOperationFinishedWithoutAnyError(OnapCliWrapper cli) {
+ assertThat(cli.getExitCode()).isEqualTo(NO_ERROR_CODE);
+ }
+
+ public static void verifyThatOperationFinishedWithError(OnapCliWrapper cli) {
+ assertThat(cli.getExitCode()).isEqualTo(ERROR_CODE);
+ }
+}
diff --git a/pmdictionaryvalidation/src/test/java/org/onap/validation/cli/MainCITest.java b/pmdictionaryvalidation/src/test/java/org/onap/validation/cli/MainCITest.java
index c6eb2ad..307d388 100644
--- a/pmdictionaryvalidation/src/test/java/org/onap/validation/cli/MainCITest.java
+++ b/pmdictionaryvalidation/src/test/java/org/onap/validation/cli/MainCITest.java
@@ -28,7 +28,7 @@ import org.onap.validation.cli.command.validate.ResponseStorage;
import org.onap.validation.cli.core.Cli;
import org.onap.validation.cli.core.CommandException;
import org.onap.validation.cli.core.Console;
-import org.onap.validation.cli.util.ToResponseModelConverter;
+import org.onap.validation.cli.command.validate.ToResponseModelConverter;
import org.onap.validation.yaml.YamlLoadingUtils;
import java.io.IOException;
diff --git a/pmdictionaryvalidation/src/test/java/org/onap/validation/cli/command/validate/ToJsonConverterTest.java b/pmdictionaryvalidation/src/test/java/org/onap/validation/cli/command/validate/ToJsonConverterTest.java
index 3c97681..06a15bb 100644
--- a/pmdictionaryvalidation/src/test/java/org/onap/validation/cli/command/validate/ToJsonConverterTest.java
+++ b/pmdictionaryvalidation/src/test/java/org/onap/validation/cli/command/validate/ToJsonConverterTest.java
@@ -22,7 +22,8 @@ import org.onap.validation.yaml.error.YamlDocumentValidationError;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.onap.validation.cli.util.ToResponseModelConverter.toModel;
+import static org.onap.validation.cli.command.validate.ToResponseModelConverter.toModel;
+
class ToJsonConverterTest {
diff --git a/pmdictionaryvalidation/src/test/java/org/onap/validation/cli/command/validate/ValidateYamlCommandTest.java b/pmdictionaryvalidation/src/test/java/org/onap/validation/cli/command/validate/ValidateYamlCommandTest.java
index 6347f75..44622db 100644
--- a/pmdictionaryvalidation/src/test/java/org/onap/validation/cli/command/validate/ValidateYamlCommandTest.java
+++ b/pmdictionaryvalidation/src/test/java/org/onap/validation/cli/command/validate/ValidateYamlCommandTest.java
@@ -29,7 +29,7 @@ import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.onap.validation.cli.util.ToResponseModelConverter.toModel;
+import static org.onap.validation.cli.command.validate.ToResponseModelConverter.toModel;
@ExtendWith(MockitoExtension.class)
class ValidateYamlCommandTest {
diff --git a/pmdictionaryvalidation/src/test/java/org/onap/validation/cli/util/ToResponseModelConverter.java b/pmdictionaryvalidation/src/test/java/org/onap/validation/cli/util/ToResponseModelConverter.java
deleted file mode 100644
index d78f493..0000000
--- a/pmdictionaryvalidation/src/test/java/org/onap/validation/cli/util/ToResponseModelConverter.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- *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.validation.cli.util;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import org.onap.validation.cli.command.validate.ResponseModel;
-
-public final class ToResponseModelConverter {
-
- private ToResponseModelConverter() {
- }
-
- public static ResponseModel toModel(String json) {
- Gson gson = new GsonBuilder().setPrettyPrinting().create();
- return gson.fromJson(json, ResponseModel.class);
- }
-}