blob: 8ba42773515b2b759b4896a0876d2c533530a3e6 [file] [log] [blame]
#!/bin/bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
#End to End Test of Services using curl/bash
apiVersion="v1"
defaultURL="http://localhost:5556"
apiURL="${1:-$defaultURL}"
status () {
#Determine if an extension is running
statusOutput=$(curl -s -X GET "$apiURL/$apiVersion/status" -H "accept: */*" -H "Content-Type: application/json")
identity=$(echo $statusOutput | jq .nodeCID)
extensionVendor=$(echo $statusOutput | jq -r .extensionVendor)
plugin=$(echo $statusOutput | jq -r .plugin)
echo "Plugin $plugin"
if [ -z "${extensionVendor}" ]; then
echo "Server Not Running"
exit 1
fi
}
###############################################################################################################################
execute_bitcoin () {
# #Run 4 Tests against the Bitcoin Extension
echo "Bitcoin Plugin Tests [4 Tests]"
output1=$(curl -s -X POST "$apiURL/$apiVersion/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":\"\",\"extension\":{\"coin\":\"0\"}}")
#echo $output1
op1=$(echo $output1 | jq .orderReference)
commitment1=$(echo $output1 | jq .commitment)
address1=$(echo $output1 | jq .extension.address)
output2=$(curl -s -X POST "$apiURL/$apiVersion/order/secret" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$op1,\"beneficiaryIDDocumentCID\":$identity}")
address2=$(echo $output2 | jq .extension.address)
commitment2=$(echo $output2 | jq .commitment)
echo "Committment1 $commitment1 $address1"
echo "Committment2 $commitment2 $address2"
if [ -z $commitment2 ]; then
echo "Failed Commitment is empty"
exit 1
fi
if [ $commitment1 == $commitment2 ]; then
echo "Pass - Id, Order & OrderSecret(Beneficiary)"
else
echo "Fail"
exit 1
fi
output3=$(curl -s -X POST "$apiURL/$apiVersion/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":$identity,\"extension\":{\"coin\":\"0\"}}")
op3=$(echo $output3 | jq .orderReference)
commitment3=$(echo $output3 | jq .commitment)
address3=$(echo $output3 | jq .extension.address)
output4=$(curl -s -X POST "$apiURL/$apiVersion/order/secret" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$op3}")
commitment4=$(echo $output4 | jq .commitment)
address4=$(echo $output4 | jq .extension.address)
orderReference=$(echo $output4 | jq .orderReference)
orderIndex=1
echo "Committment3 $commitment3 $address3"
echo "Committment4 $commitment4 $address4"
if [ -z $commitment4 ]; then
echo "Failed Commitment is empty"
exit 1
fi
if [ $commitment3 == $commitment4 ]; then
echo "Pass - Id, Order(Beneficiary) & OrderSecret"
else
echo "Fail"
exit 1
fi
#make another BeneficiaryID
output5=$(curl -s -X POST "http://localhost:5556/$apiVersion/identity" -H "accept: */*" -H "Content-Type: application/json" -d "{\"Name\":\"AA\"}")
benid=$(echo $output5 | jq -r .idDocumentCID)
#Tests against the Bitcoin Extension - different befificary
output6=$(curl -s -X POST "http://localhost:5556/$apiVersion/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":\"\",\"extension\":{\"coin\":\"0\"}}")
#echo $output6
op6=$(echo $output6 | jq .orderReference)
commitment6=$(echo $output6 | jq .commitment)
address6=$(echo $output6 | jq .extension.address)
output7=$(curl -s -X POST "http://localhost:5556/$apiVersion/order/secret" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$op6,\"beneficiaryIDDocumentCID\":\"$benid\"}")
address7=$(echo $output7 | jq .extension.address)
commitment7=$(echo $output7 | jq .commitment)
echo "Committment5 $commitment6 $address6"
echo "Committment6 $commitment7 $address7"
if [ -z $commitment7 ]; then
echo "Failed Commitment is empty"
exit 1
fi
if [ $commitment6 == $commitment7 ]; then
echo "Pass - Id, Order & OrderSecret(Beneficiary)"
else
echo "Fail"
exit 1
fi
output8=$(curl -s -X POST "http://localhost:5556/$apiVersion/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":\"$benid\",\"extension\":{\"coin\":\"0\"}}")
op8=$(echo $output8 | jq .orderReference)
commitment8=$(echo $output8 | jq .commitment)
address8=$(echo $output8 | jq .extension.address)
output9=$(curl -s -X POST "http://localhost:5556/$apiVersion/order/secret" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$op8}")
commitment9=$(echo $output9 | jq .commitment)
address9=$(echo $output9 | jq .extension.address)
orderReference=$(echo $output9 | jq .orderReference)
orderIndex=1
echo "Committment7 $commitment8 $address8"
echo "Committment8 $commitment9 $address9"
if [ -z $commitment9 ]; then
echo "Failed Commitment is empty"
exit 1
fi
if [ $commitment8 == $commitment9 ]; then
echo "Pass - Id, Order(Beneficiary) & OrderSecret"
else
echo "Fail"
exit 1
fi
}
###############################################################################################################################
execute_safeguardsecret () {
inputString="This is some random test text 1234567890!"
echo "Encrypt a String [1 Test]"
echo $output1
output1=$(curl -s -X POST "$apiURL/$apiVersion/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":$identity,\"extension\":{\"plainText\":\"$inputString\"}}")
echo $output1
op1=$(echo $output1 | jq .orderReference)
cipherText=$(echo $output1 | jq .extension.cypherText)
tvalue=$(echo $output1 | jq .extension.t)
vvalue=$(echo $output1 | jq .extension.v)
commitment1=$(echo $output1 | jq .commitment)
output2=$(curl -s -X POST "$apiURL/$apiVersion/order/secret" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$op1,\"beneficiaryIDDocumentCID\":$identity,\"extension\":{\"cypherText\":$cipherText,\"t\":$tvalue,\"v\":$vvalue}}")
result=$(echo $output2 | jq -r .extension.plainText)
orderReference=$(echo $output2 | jq .orderReference)
orderIndex=0
if [ "$inputString" == "$result" ]; then
echo "Pass"
else
echo "Fail"
exit 1
fi
}
# #############################################################################
execute_milagro () {
echo "Milagro Tests [1 Test]"
output1=$(curl -s -X POST "$apiURL/$apiVersion/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":$identity}")
echo $output1
op1=$(echo $output1 | jq .orderReference)
commitment1=$(echo $output1 | jq .commitment)
output2=$(curl -s -X POST "$apiURL/$apiVersion/order/secret" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$op1,\"beneficiaryIDDocumentCID\":$identity}")
commitment2=$(echo $output2 | jq .commitment)
orderReference=$(echo $output2 | jq .orderReference)
orderIndex=0
echo "Committment1 $commitment1"
echo "Committment2 $commitment2"
if [ -z $commitment2 ]; then
echo "Failed Commitment is empty"
exit 1
fi
if [ $commitment1 == $commitment2 ]; then
echo "Order Create/Retrieve Pass"
else
echo "Order Create/Retrieve Fail"
exit 1
fi
}
# #############################################################################
execute_orderlist () {
echo "Milagro Tests [1 Test]"
commitment2=$(echo $output2 | jq .commitment)
outputList=$(curl -s -X GET "$apiURL/$apiVersion/order?page=0&perPage=2&sortBy=dateCreatedDsc" -H "accept: */*")
orderReference=$(echo $outputList | jq -r ".orderReference | .[$orderIndex]")
outputOrder=$(curl -s -X GET "$apiURL/$apiVersion/order/$orderReference" -H "accept: */*")
#A simple smoke test to ensure some sort of order is returned
hasSecret=`echo $outputOrder | grep "Secret"`
if [ -z $hasSecret ]; then
echo "Failed Order has error"
exit 1
else
echo "Passed orderList & get"
fi
}
# #############################################################################
status
if [ $plugin == "bitcoinwallet" ]; then
execute_bitcoin
fi
if [ $plugin == "qredoplugin" ]; then
execute_bitcoin
fi
if [ $plugin == "milagro" ]; then
execute_milagro
fi
if [ $plugin == "safeguardsecret" ]; then
execute_safeguardsecret
fi
execute_orderlist