diff options
Diffstat (limited to 'test/cli')
-rwxr-xr-x | test/cli/cli-enrichment-test.sh | 32 | ||||
-rwxr-xr-x | test/cli/cli-upload-test.sh | 36 | ||||
-rw-r--r-- | test/cli/command-fail/expected-response.json | 34 | ||||
-rw-r--r-- | test/cli/command-fail/request-payload.json | 26 | ||||
-rwxr-xr-x | test/cli/command-fail/test.sh | 41 | ||||
-rw-r--r-- | test/cli/dummy-request-payload.json | 14 | ||||
-rw-r--r-- | test/cli/success/expected-response.json | 38 | ||||
-rw-r--r-- | test/cli/success/request-payload.json | 27 | ||||
-rwxr-xr-x | test/cli/success/test.sh | 41 |
9 files changed, 289 insertions, 0 deletions
diff --git a/test/cli/cli-enrichment-test.sh b/test/cli/cli-enrichment-test.sh new file mode 100755 index 0000000..1051a1b --- /dev/null +++ b/test/cli/cli-enrichment-test.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# +# Copyright (C) 2020 Bell Canada. +# +# 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. +# + +CBA_NAME="cli" +TEST_NAME="$CBA_NAME-enrichment" +TEST_NUMBER=$RANDOM +RESPONSE_HEADERS_FILE="$RESPONSES_DIRECTORY/$TEST_NAME-$TEST_NUMBER-response-headers" + +. ./$TEST_DIRECTORY/utils.sh + +echo "Compressing CBA: $CBA_NAME" +compress_cba $CBA_NAME + +echo "Enriching CBA: $CBA_NAME" +enrich_cba $CBA_NAME $RESPONSE_HEADERS_FILE + +echo 'Assert status 200' +assert_status_code 200 $RESPONSE_HEADERS_FILE diff --git a/test/cli/cli-upload-test.sh b/test/cli/cli-upload-test.sh new file mode 100755 index 0000000..b0464ea --- /dev/null +++ b/test/cli/cli-upload-test.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# +# Copyright (C) 2020 Bell Canada. +# +# 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. +# + +CBA_NAME="cli" +TEST_NAME="$CBA_NAME-upload" +TEST_NUMBER=$RANDOM +RESPONSE_HEADERS_FILE="$RESPONSES_DIRECTORY/$TEST_NAME-$TEST_NUMBER-response-headers" +RESPONSE_PAYLOAD_FILE="$RESPONSES_DIRECTORY/$TEST_NAME-$TEST_NUMBER-response-payload" +REQUEST_PAYLOAD_FILE="$TEST_DIRECTORY/$CBA_NAME/dummy-request-payload.json" + +. ./$TEST_DIRECTORY/utils.sh + +echo "Uploading CBA: $CBA_NAME" +upload_cba $CBA_NAME $RESPONSE_PAYLOAD_FILE $RESPONSE_HEADERS_FILE + +echo 'Assert status 200' +assert_status_code 200 $RESPONSE_HEADERS_FILE + +# This step prevents a race-condition for parallel process requests +# when cba has not yet been written to filesystem +echo 'Send process request to force CDS to load CBA to filesystem' +process_cba $REQUEST_PAYLOAD_FILE '/dev/null' '/dev/null' diff --git a/test/cli/command-fail/expected-response.json b/test/cli/command-fail/expected-response.json new file mode 100644 index 0000000..6b71773 --- /dev/null +++ b/test/cli/command-fail/expected-response.json @@ -0,0 +1,34 @@ +{ + "correlationUUID": null, + "commonHeader": { + "timestamp": "2020-06-04T15:05:20.003Z", + "originatorId": "System", + "requestId": "regression-test-cli-command-fail", + "subRequestId": "1", + "flags": null + }, + "actionIdentifiers": { + "blueprintName": "RT-cli", + "blueprintVersion": "1.0.0", + "actionName": "cli", + "mode": "sync" + }, + "status": { + "code": 200, + "eventType": "EVENT_COMPONENT_EXECUTED", + "timestamp": "2020-06-04T15:05:41.528Z", + "errorMessage": null, + "message": "success" + }, + "payload": { + "cli-response": { + "response-data": [ + { + "command": "nonExistCommand", + "deviceOutput": "nonExistCommand\r\n/ $ nonExistCommand\r\n-ash: nonExistCommand: not found\r\n/ $ \u001b[6n", + "successful": true + } + ] + } + } +} diff --git a/test/cli/command-fail/request-payload.json b/test/cli/command-fail/request-payload.json new file mode 100644 index 0000000..700271e --- /dev/null +++ b/test/cli/command-fail/request-payload.json @@ -0,0 +1,26 @@ +{ + "actionIdentifiers": { + "mode": "sync", + "blueprintName": "RT-cli", + "blueprintVersion": "1.0.0", + "actionName": "cli" + }, + "payload": { + "cli-request": { + "host": "cds-regression-sshmock", + "username": "cdstest", + "password": "testcds", + "port": "22", + "connectionTimeOut": "5000", + "logging": true, + "commands": [ + "nonExistCommand" + ] + } + }, + "commonHeader": { + "subRequestId": "1", + "requestId": "regression-test-cli-command-fail", + "originatorId": "System" + } +} diff --git a/test/cli/command-fail/test.sh b/test/cli/command-fail/test.sh new file mode 100755 index 0000000..e41abff --- /dev/null +++ b/test/cli/command-fail/test.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# +# Copyright (C) 2020 Bell Canada. +# +# 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. +# + +CBA_NAME="cli" +TEST_NAME="command-fail" +TEST_NUMBER=$RANDOM + +mkdir -p "$RESPONSES_DIRECTORY/$CBA_NAME/$TEST_NAME/$TEST_NUMBER/" +RESPONSE_HEADERS_FILE="$RESPONSES_DIRECTORY/$CBA_NAME/$TEST_NAME/$TEST_NUMBER/response-headers" +RESPONSE_PAYLOAD_FILE="$RESPONSES_DIRECTORY/$CBA_NAME/$TEST_NAME/$TEST_NUMBER/response-payload" + +RESOURCES_DIR="$TEST_DIRECTORY/$CBA_NAME/$TEST_NAME" +REQUEST_PAYLOAD_FILE="$RESOURCES_DIR/request-payload.json" +EXPECTED_PAYLOAD_FILE="$RESOURCES_DIR/expected-response.json" + +. ./$TEST_DIRECTORY/utils.sh + +echo "Running test: $CBA_NAME:$TEST_NUMBER:$TEST_NAME" + +echo 'Calling CDS process' +process_cba $REQUEST_PAYLOAD_FILE $RESPONSE_PAYLOAD_FILE $RESPONSE_HEADERS_FILE + +echo 'Assert statuscode 200' +assert_status_code 200 $RESPONSE_HEADERS_FILE + +echo 'Assert payload' +assert_cds_response_equals $EXPECTED_PAYLOAD_FILE $RESPONSE_PAYLOAD_FILE diff --git a/test/cli/dummy-request-payload.json b/test/cli/dummy-request-payload.json new file mode 100644 index 0000000..62d2f92 --- /dev/null +++ b/test/cli/dummy-request-payload.json @@ -0,0 +1,14 @@ +{ + "commonHeader": { + "originatorId": "System", + "requestId": "dummy-request-should-fail", + "subRequestId": "1" + }, + "actionIdentifiers": { + "blueprintName": "RT-cli", + "blueprintVersion": "1.0.0", + "actionName": "dummy", + "mode": "sync" + }, + "payload": {} +} diff --git a/test/cli/success/expected-response.json b/test/cli/success/expected-response.json new file mode 100644 index 0000000..55248cb --- /dev/null +++ b/test/cli/success/expected-response.json @@ -0,0 +1,38 @@ +{ + "commonHeader": { + "timestamp": "2020-05-25T20:54:11.024Z", + "originatorId": "System", + "requestId": "regression-test-cli", + "subRequestId": "1", + "flags": null + }, + "actionIdentifiers": { + "blueprintName": "RT-cli", + "blueprintVersion": "1.0.0", + "actionName": "cli", + "mode": "sync" + }, + "status": { + "code": 200, + "eventType": "EVENT_COMPONENT_EXECUTED", + "timestamp": "2020-05-25T20:54:21.453Z", + "errorMessage": null, + "message": "success" + }, + "payload": { + "cli-response": { + "response-data": [ + { + "command": "pwd", + "deviceOutput": "pwd\r\n/ $ pwd\r\n/\r\n/ $ \u001b[6n", + "successful": true + }, + { + "command": "ls", + "deviceOutput": "pwd\r\n/ $ pwd\r\n/\r\n/ $ \u001b[6nls\r\n\u001b[1;34mbin\u001b[m \u001b[1;34mdev\u001b[m \u001b[1;34metc\u001b[m \u001b[1;34mlib\u001b[m\r\n/ $ \u001b[6n", + "successful": true + } + ] + } + } +} diff --git a/test/cli/success/request-payload.json b/test/cli/success/request-payload.json new file mode 100644 index 0000000..0438a7c --- /dev/null +++ b/test/cli/success/request-payload.json @@ -0,0 +1,27 @@ +{ + "actionIdentifiers": { + "mode": "sync", + "blueprintName": "RT-cli", + "blueprintVersion": "1.0.0", + "actionName": "cli" + }, + "payload": { + "cli-request": { + "host": "cds-regression-sshmock", + "username": "cdstest", + "password": "testcds", + "port": "22", + "connectionTimeOut": "5000", + "logging": true, + "commands": [ + "pwd", + "ls" + ] + } + }, + "commonHeader": { + "subRequestId": "1", + "requestId": "regression-test-cli", + "originatorId": "System" + } +} diff --git a/test/cli/success/test.sh b/test/cli/success/test.sh new file mode 100755 index 0000000..87b961f --- /dev/null +++ b/test/cli/success/test.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# +# Copyright (C) 2020 Bell Canada. +# +# 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. +# + +CBA_NAME="cli" +TEST_NAME="success" +TEST_NUMBER=$RANDOM + +mkdir -p "$RESPONSES_DIRECTORY/$CBA_NAME/$TEST_NAME/$TEST_NUMBER/" +RESPONSE_HEADERS_FILE="$RESPONSES_DIRECTORY/$CBA_NAME/$TEST_NAME/$TEST_NUMBER/response-headers" +RESPONSE_PAYLOAD_FILE="$RESPONSES_DIRECTORY/$CBA_NAME/$TEST_NAME/$TEST_NUMBER/response-payload" + +RESOURCES_DIR="$TEST_DIRECTORY/$CBA_NAME/$TEST_NAME" +REQUEST_PAYLOAD_FILE="$RESOURCES_DIR/request-payload.json" +EXPECTED_PAYLOAD_FILE="$RESOURCES_DIR/expected-response.json" + +. ./$TEST_DIRECTORY/utils.sh + +echo "Running test: $CBA_NAME:$TEST_NUMBER:$TEST_NAME" + +echo 'Calling CDS process' +process_cba $REQUEST_PAYLOAD_FILE $RESPONSE_PAYLOAD_FILE $RESPONSE_HEADERS_FILE + +echo 'Assert statuscode 200' +assert_status_code 200 $RESPONSE_HEADERS_FILE + +echo 'Assert payload' +assert_cds_response_equals $EXPECTED_PAYLOAD_FILE $RESPONSE_PAYLOAD_FILE |