+++ /dev/null
-#!/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=================================================
-#
-
-
-
-# Function to execute curl towards a container (or process) and compare + print result
-# Intended use is for basic test scripts where testing is done with curl and the returned response and payload need to be checked.
-# args: GET|PUT|POST|DELETE <url> <target-response-code> [<json-file>]
-# All calls made to 'localhost:'<port>.
-# Expects env PORT set to intended port number
-# Expects env RESULT to contain the target response body.
-# RESULT="*" means that returned payload is not checked, may container any text
-# RESULT="<text>" menans that the returned payload has to match the <text> exactly
-# RESULT="json:<returned-payload>" means that the returned json payload is compared with the expected result (order of json keys and index is irrelevant)
-# Env BODY contains the response body after the call
-# Any error will stop script execution
-# How to use in a test script: source this file into your bash test script to the make the function available.
-
-do_curl() {
- echo -e $BOLD"TEST(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ $EBOLD
- if [ $# -lt 3 ]; then
- echo "Need 3 or more parameters, <http-operation> <url> <response-code> [file]: "$@
- echo "Exting test script....."
- exit 1
- fi
- curlstr="curl -X "$1" -sw %{http_code} localhost:$PORT$2 -H accept:*/*"
- if [ $# -gt 3 ]; then
- curlstr=$curlstr" -H Content-Type:application/json --data-binary @"$4
- fi
- echo " CMD:"$curlstr
- res=$($curlstr)
- status=${res:${#res}-3}
- body=${res:0:${#res}-3}
- export body
- if [ $status -ne $3 ]; then
- echo " Error status:"$status" Expected status: "$3
- echo " Body: "$body
- echo "Exting test script....."
- exit 1
- else
- echo " OK, code: "$status" (Expected)"
- echo " Body: "$body
- if [ "$RESULT" == "*" ]; then
- echo " Body contents not checked"
- elif [[ "$RESULT" == "json:"* ]]; then
- result=${RESULT:5:${#RESULT}}
- #Find dir of the common dir
- DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
- res=$(python ${DIR}/compare_json.py "$result" "$body")
- if [ $res -eq 0 ]; then
- echo " Body as expected"
- else
- echo " Expected json body: "$result
- echo "Exiting....."
- exit 1
- fi
- else
- body="$(echo $body | tr -d '\n' )"
- if [ "$RESULT" == "$body" ]; then
- echo " Body as expected"
- else
- echo " Expected body: "$RESULT
- echo "Exiting....."
- exit 1
- fi
- fi
- fi
-}
\ No newline at end of file