blob: a17c804168157644e4db27910d7539b0377da26b [file] [log] [blame]
#!/bin/bash
# ============LICENSE_START===============================================
# Copyright (C) 2020 Nordix Foundation. All rights reserved.
# ========================================================================
# 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.
# ============LICENSE_END=================================================
#
# Automated test script for producer stub container
if [ $# -ne 1 ]; then
echo "Usage: ./basic_test.sh nonsecure|secure"
exit 1
fi
if [ "$1" != "nonsecure" ] && [ "$1" != "secure" ]; then
echo "Usage: ./basic_test.sh nonsecure|secure"
exit 1
fi
if [ $1 == "nonsecure" ]; then
#Default http port for the simulator
PORT=8992
# Set http protocol
HTTPX="http"
else
#Default https port for the simulator
PORT=8993
# Set https protocol
HTTPX="https"
fi
# source function to do curl and check result
. ../common/do_curl_function.sh
echo "=== hello world ==="
RESULT="OK"
do_curl GET / 200
echo "=== reset ==="
RESULT=""
do_curl GET /reset 200
echo "=== status ==="
RESULT="json:{}"
do_curl GET /status 200
# Basic admin
echo "=== check supervision counter ==="
RESULT="-1"
do_curl GET /counter/supervision/prod-x 200
echo "=== check create counter ==="
RESULT="-1"
do_curl GET /counter/create/prod-x/job-x 200
echo "=== check delete counter ==="
RESULT="-1"
do_curl GET /counter/delete/prod-x/job-x 200
## Create/update a producer
echo "=== create producer ==="
RESULT="Unknown query parameter(s)"
do_curl PUT /arm/supervision/prod-x?test=201 400
echo "=== create producer ==="
RESULT=""
do_curl PUT /arm/supervision/prod-x?response=201 200
echo "=== update producer ==="
RESULT=""
do_curl PUT /arm/supervision/prod-x?response=400 200
echo "=== update producer ==="
RESULT=""
do_curl PUT /arm/supervision/prod-x 200
## Add types to a producere
echo "=== add type 10 ==="
RESULT=""
do_curl PUT /arm/type/prod-x/10 200
echo "=== add type 15 ==="
RESULT=""
do_curl PUT /arm/type/prod-x/15 200
## check the db
echo "=== status ==="
RESULT="json:{\"prod-x\": {\"supervision_response\": 200, \"supervision_counter\": 0, \"types\": [\"10\", \"15\"]}}"
do_curl GET /status 200
## Add type
echo "=== add type 20 ==="
RESULT=""
do_curl PUT /arm/type/prod-x/20 200
echo "=== status ==="
RESULT="json:{\"prod-x\": {\"supervision_response\": 200, \"supervision_counter\": 0, \"types\": [\"10\", \"15\", \"20\"]}}"
do_curl GET /status 200
## remove type
echo "=== remove type 20 ==="
RESULT=""
do_curl DELETE /arm/type/prod-x/20 200
echo "=== status ==="
RESULT="json:{\"prod-x\": {\"supervision_response\": 200, \"supervision_counter\": 0, \"types\": [\"10\", \"15\"]}}"
do_curl GET /status 200
## producer supervision
echo "=== check supervision counter ==="
RESULT="0"
do_curl GET /counter/supervision/prod-x 200
echo "=== supervision producer ==="
RESULT=""
do_curl GET /callbacks/supervision/prod-x 200
echo "=== update producer ==="
RESULT=""
do_curl PUT /arm/supervision/prod-x?response=400 200
echo "=== callback supervision producer ==="
RESULT="returning configured response code"
do_curl GET /callbacks/supervision/prod-x 400
## check the db
echo "=== status ==="
RESULT="json:{\"prod-x\": {\"supervision_response\": 400, \"supervision_counter\": 2, \"types\": [\"10\", \"15\"]}}"
do_curl GET /status 200
## create/update job
echo "=== add job ==="
RESULT=""
do_curl PUT /arm/create/prod-x/job-y 200
echo "=== update job ==="
RESULT=""
do_curl PUT /arm/create/prod-x/job-y?response=405 200
## check the db
echo "=== status ==="
RESULT="json:{\"prod-x\": {\"supervision_response\": 400, \"supervision_counter\": 2, \"types\": [\"10\", \"15\"], \"job-y\": {\"create_response\": 405, \"delete_response\": 404, \"json\": null, \"create_counter\": 0, \"delete_counter\": 0, \"delivering\": false, \"delivery_attempts\": 0}}}"
do_curl GET /status 200
## add delete response for job
echo "=== update job ==="
RESULT=""
do_curl PUT /arm/delete/prod-x/job-y?response=407 200
## check the db
echo "=== status ==="
RESULT="json:{\"prod-x\": {\"supervision_response\": 400, \"supervision_counter\": 2, \"types\": [\"10\", \"15\"], \"job-y\": {\"create_response\": 405, \"delete_response\": 407, \"json\": null, \"create_counter\": 0, \"delete_counter\": 0, \"delivering\": false, \"delivery_attempts\": 0}}}"
do_curl GET /status 200
## Get jobdata
echo "=== job data ==="
RESULT=""
do_curl GET /jobdata/prod-x/job-y 204
## callback create
echo "=== add job ==="
RESULT=""
do_curl PUT /arm/create/prod-x/job-1 200
RESULT=""
do_curl PUT /arm/delete/prod-x/job-1 200
echo "=== callback create job ==="
RESULT=""
echo "{\"ei_job_identity\": \"job-1\", \"ei_job_data\": {}, \"target_uri\": \"http://localhost:80\",\"ei_type_identity\": \"10\"}" > .p.json
do_curl POST /callbacks/create/prod-x 201 .p.json
echo "=== callback create job -update ==="
RESULT=""
echo "{\"ei_job_identity\": \"job-1\", \"ei_job_data\": {}, \"target_uri\": \"http://localhost:80\",\"ei_type_identity\": \"10\"}" > .p.json
do_curl POST /callbacks/create/prod-x 200 .p.json
## Get jobdata
echo "=== job data ==="
RESULT="json:{\"ei_job_identity\": \"job-1\", \"ei_job_data\": {}, \"target_uri\": \"http://localhost:80\", \"ei_type_identity\": \"10\"}"
do_curl GET /jobdata/prod-x/job-1 200
## check the db
echo "=== status ==="
RESULT="json:{\"prod-x\": {\"supervision_response\": 400, \"supervision_counter\": 2, \"types\": [\"10\", \"15\"], \"job-y\": {\"create_response\": 405, \"delete_response\": 407, \"json\": null, \"create_counter\": 0, \"delete_counter\": 0, \"delivering\": false, \"delivery_attempts\": 0}, \"job-1\": {\"create_response\": 200, \"delete_response\": 204, \"json\": {\"ei_job_identity\": \"job-1\", \"ei_job_data\": {}, \"target_uri\": \"http://localhost:80\", \"ei_type_identity\": \"10\"}, \"create_counter\": 2, \"delete_counter\": 0, \"delivering\": false, \"delivery_attempts\": 0}}}"
do_curl GET /status 200
# create and delete job tests
echo "=== set job create response ==="
RESULT=""
do_curl PUT /arm/create/prod-x/job-1?response=404 200
echo "=== callback create job -update ==="
RESULT="returning configured response code"
echo "{\"ei_job_identity\": \"job-1\", \"ei_job_data\": {}, \"target_uri\": \"http://localhost:80\",\"ei_type_identity\": \"10\"}" > .p.json
do_curl POST /callbacks/create/prod-x 404 .p.json
echo "=== set job delete response ==="
RESULT=""
do_curl PUT /arm/delete/prod-x/job-1?response=404 200
echo "=== callback delete job==="
RESULT="returning configured response code"
echo "{\"ei_job_identity\": \"job-1\", \"ei_job_data\": {}, \"target_uri\": \"http://localhost:80\",\"ei_type_identity\": \"10\"}" > .p.json
do_curl POST /callbacks/delete/prod-x 404 .p.json
echo "=== set job delete response ==="
RESULT=""
do_curl PUT /arm/delete/prod-x/job-1 200
echo "=== callback delete job==="
RESULT=""
echo "{\"ei_job_identity\": \"job-1\", \"ei_job_data\": {}, \"target_uri\": \"http://localhost:80\",\"ei_type_identity\": \"10\"}" > .p.json
do_curl POST /callbacks/delete/prod-x 204 .p.json
## check the db
echo "=== status ==="
RESULT="json:{\"prod-x\": {\"supervision_response\": 400, \"supervision_counter\": 2, \"types\": [\"10\", \"15\"], \"job-y\": {\"create_response\": 405, \"delete_response\": 407, \"json\": null, \"create_counter\": 0, \"delete_counter\": 0, \"delivering\": false, \"delivery_attempts\": 0}, \"job-1\": {\"create_response\": 404, \"delete_response\": 404, \"json\": null, \"create_counter\": 3, \"delete_counter\": 2, \"delivering\": false, \"delivery_attempts\": 0}}}"
do_curl GET /status 200
## data delivery
echo "=== update producer ==="
RESULT=""
do_curl PUT /arm/create/prod-x/job-1 200
echo "=== callback create job ==="
RESULT=""
echo "{\"ei_job_identity\": \"job-1\", \"ei_job_data\": {}, \"target_uri\": \"http://localhost:80\",\"ei_type_identity\": \"10\"}" > .p.json
do_curl POST /callbacks/create/prod-x 201 .p.json
echo "=== data delivery start ==="
RESULT="job not found"
do_curl POST /jobdata/prod-x/job-x?action=START 404
echo "=== data delivery start ==="
RESULT=""
do_curl POST /jobdata/prod-x/job-1?action=START 200
echo "sleep 5"
sleep 5
echo "=== data delivery stop ==="
RESULT=""
do_curl POST /jobdata/prod-x/job-1?action=STOP 200
echo "********************"
echo "*** All tests ok ***"
echo "********************"