From abf5898650417a9726c8eb8924b4b3aaebf54523 Mon Sep 17 00:00:00 2001 From: Kanagaraj Manickam k00365106 Date: Tue, 26 Sep 2017 20:42:28 +0530 Subject: Fix auth plugin issues Now OCLIP is enabled to be very generic platform. Issue-Id: CLI-66 Change-Id: Id431f2eca5e516ad3b070c2c80e4fcd2ba0b54b2 Signed-off-by: Kanagaraj Manickam k00365106 --- .../cli/fw/ad/OnapAuthClientCommandBasedTest.java | 116 +++++++++++++++++++++ .../sample-test-schema-no-auth-no-catalog.yaml | 22 ++++ .../sample-test-schema-no-auth-yes-catalog.yaml | 22 ++++ .../sample-test-schema-yes-auth-no-catalog.yaml | 22 ++++ .../sample-test-schema-yes-auth-yes-catalog.yaml | 22 ++++ .../src/test/resources/sample-test-schema.yaml | 16 +-- 6 files changed, 212 insertions(+), 8 deletions(-) create mode 100644 framework/src/test/java/org/onap/cli/fw/ad/OnapAuthClientCommandBasedTest.java create mode 100644 framework/src/test/resources/sample-test-schema-no-auth-no-catalog.yaml create mode 100644 framework/src/test/resources/sample-test-schema-no-auth-yes-catalog.yaml create mode 100644 framework/src/test/resources/sample-test-schema-yes-auth-no-catalog.yaml create mode 100644 framework/src/test/resources/sample-test-schema-yes-auth-yes-catalog.yaml (limited to 'framework/src/test') diff --git a/framework/src/test/java/org/onap/cli/fw/ad/OnapAuthClientCommandBasedTest.java b/framework/src/test/java/org/onap/cli/fw/ad/OnapAuthClientCommandBasedTest.java new file mode 100644 index 00000000..77ef680d --- /dev/null +++ b/framework/src/test/java/org/onap/cli/fw/ad/OnapAuthClientCommandBasedTest.java @@ -0,0 +1,116 @@ +/* + * Copyright 2017 Huawei Technologies Co., Ltd. + * + * 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.cli.fw.ad; + +import static org.junit.Assert.fail; + +import org.junit.Test; +import org.onap.cli.fw.OnapCommand; +import org.onap.cli.fw.OnapCommandRegistrar; +import org.onap.cli.fw.conf.Constants; +import org.onap.cli.fw.conf.OnapCommandConfg; +import org.onap.cli.fw.error.OnapCommandException; + +public class OnapAuthClientCommandBasedTest { + + OnapCommand cmd; + + @Test + public void internalCommandTest() { + try { + cmd = OnapCommandRegistrar.getRegistrar().get("sample-test"); + cmd.getService().setName(OnapCommandConfg.getInternalCmd()); + + cmd.execute(); + } catch (OnapCommandException e) { + fail("Internal command failed to run"); + e.printStackTrace(); + } + } + + @Test + public void yesCatalogYesAuthTest() throws OnapCommandException { + try { + cmd = getCommand("sample-test-schema-yes-auth-yes-catalog.yaml"); + cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_HOST_URL).setValue("http://localhost:8080"); + cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_USERNAME).setValue("test"); + cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_PASS_WORD).setValue("password"); + + cmd.execute(); + } catch (OnapCommandException e) { + fail("External command Yes Auth Yes Catalog failed to run"); + e.printStackTrace(); + } + } + + @Test + public void yesCatalogNoAuthTest() throws OnapCommandException { + try { + cmd = getCommand("sample-test-schema-no-auth-yes-catalog.yaml"); + cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_HOST_URL).setValue("http://localhost:8080"); + + cmd.execute(); + } catch (OnapCommandException e) { + fail("External command Yes Auth No Catalog failed to run"); + e.printStackTrace(); + } + } + + @Test + public void noCatalogYesAuthTest() throws OnapCommandException { + try { + cmd = getCommand("sample-test-schema-yes-auth-no-catalog.yaml"); + cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_HOST_URL).setValue("http://localhost:8080"); + cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_USERNAME).setValue("test"); + cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_PASS_WORD).setValue("password"); + + cmd.execute(); + } catch (OnapCommandException e) { + fail("External command Yes Auth No Catalog failed to run"); + e.printStackTrace(); + } + } + + @Test + public void noCatalogNoAuthTest() throws OnapCommandException { + try { + cmd = getCommand("sample-test-schema-no-auth-no-catalog.yaml"); + cmd.getParametersMap().get(Constants.DEAFULT_PARAMETER_HOST_URL).setValue("http://localhost:8080"); + + cmd.execute(); + } catch (OnapCommandException e) { + fail("External command No Auth No Catalog failed to run"); + e.printStackTrace(); + } + } + + private OnapCommand getCommand(String yaml) throws OnapCommandException { + OnapCommand cmd = new OnapCommand() { + @Override + protected void run() throws OnapCommandException { + if (!this.getService().isModeDirect()) { + String url = this.authClient.getServiceUrl(); + assert url.equals(this.getParametersMap().get(Constants.DEAFULT_PARAMETER_HOST_URL).getValue() + "/"); + } + } + }; + + cmd.initializeSchema(yaml); + + return cmd; + } + } diff --git a/framework/src/test/resources/sample-test-schema-no-auth-no-catalog.yaml b/framework/src/test/resources/sample-test-schema-no-auth-no-catalog.yaml new file mode 100644 index 00000000..295a2b80 --- /dev/null +++ b/framework/src/test/resources/sample-test-schema-no-auth-no-catalog.yaml @@ -0,0 +1,22 @@ +open_cli_schema_version: 1.0 + +name: sample-cmd-no-auth-no-catalog + +description: sample + +version: sample-test-1.0 + +service: + name: sample + version: v1 + auth: none + mode: direct + +http: + request: + uri: /test + method: GET + success_codes: + - 200 + result_map: + name: ${name} diff --git a/framework/src/test/resources/sample-test-schema-no-auth-yes-catalog.yaml b/framework/src/test/resources/sample-test-schema-no-auth-yes-catalog.yaml new file mode 100644 index 00000000..ebe03d86 --- /dev/null +++ b/framework/src/test/resources/sample-test-schema-no-auth-yes-catalog.yaml @@ -0,0 +1,22 @@ +open_cli_schema_version: 1.0 + +name: sample-cmd-no-auth-no-catalog + +description: sample + +version: sample-test-1.0 + +service: + name: sample + version: v1 + auth: none + mode: catalog + +http: + request: + uri: /test + method: GET + success_codes: + - 200 + result_map: + name: ${name} diff --git a/framework/src/test/resources/sample-test-schema-yes-auth-no-catalog.yaml b/framework/src/test/resources/sample-test-schema-yes-auth-no-catalog.yaml new file mode 100644 index 00000000..fada6f52 --- /dev/null +++ b/framework/src/test/resources/sample-test-schema-yes-auth-no-catalog.yaml @@ -0,0 +1,22 @@ +open_cli_schema_version: 1.0 + +name: sample-cmd-yes-auth-no-catalog + +description: sample + +version: sample-test-1.0 + +service: + name: sample + version: v1 + auth: basic + mode: direct + +http: + request: + uri: /test + method: GET + success_codes: + - 200 + result_map: + name: ${name} diff --git a/framework/src/test/resources/sample-test-schema-yes-auth-yes-catalog.yaml b/framework/src/test/resources/sample-test-schema-yes-auth-yes-catalog.yaml new file mode 100644 index 00000000..e8b814a4 --- /dev/null +++ b/framework/src/test/resources/sample-test-schema-yes-auth-yes-catalog.yaml @@ -0,0 +1,22 @@ +open_cli_schema_version: 1.0 + +name: sample-cmd-no-auth-no-catalog + +description: sample + +version: sample-test-1.0 + +service: + name: sample + version: v1 + auth: basic + mode: catalog + +http: + request: + uri: /test + method: GET + success_codes: + - 200 + result_map: + name: ${name} diff --git a/framework/src/test/resources/sample-test-schema.yaml b/framework/src/test/resources/sample-test-schema.yaml index 092e0e75..d77cb114 100644 --- a/framework/src/test/resources/sample-test-schema.yaml +++ b/framework/src/test/resources/sample-test-schema.yaml @@ -20,53 +20,53 @@ parameters: short_option: x long_option: secure is_secured: true - is_optional: false + is_optional: true default_Value: pass123# - name: string-param type: string description: Onap string param long_option: string-param short_option: c - is_optional: false + is_optional: true default_Value: test - name: yaml-param type: json description: Onap yaml file location param long_option: yaml-param short_option: y - is_optional: false + is_optional: true - name: json-param type: json description: Onap json file location param long_option: json-param short_option: j - is_optional: false + is_optional: true is_secured: false - name: long-param type: digit description: Onap long param short_option: l long_option: long-opt - is_optional: false + is_optional: true default_value: 10 - name: url-param type: url description: Onap url param short_option: r long_option: url - is_optional: false + is_optional: true default_value: http://localhost:8082/file.txt - name: env-param type: string description: Onap env param. short_option: z long_option: env - is_optional: false + is_optional: true default_value: ${ENV_VAR} - name: positional-args type: string description: Onap positional args, if no short option and no long option given for it - is_optional: false + is_optional: true default_value: http://localhost:8082/file.txt results: direction: portrait -- cgit 1.2.3-korg