blob: c84c0ccc5673467294e20a2521402b529048f881 [file] [log] [blame]
#!/bin/bash
#End to End Test of Services using curl/bash
apiVersion="v1"
simplePolicy='{ "example":"single fiduciary","walletRef": "CD-2367-227","beneficiarydocid":"","nodeId": "123","coin": 0,"sharingGroups": [{"groupref": "Back Office Team","threshold":1,"ids": [{"id": "alice","idType": "oidc","idRef": "Alice"}]}],"participantCount": 7}'
#simplePolicy='policy:{"example":"single fiduciary"}'
status () {
#Determine if an extension is running
statusOutput=$(curl -s -X GET "http://localhost:5556/$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 2 Tests against the Bitcoin Extension
echo "Bitcoin Plugin Tests [2 Tests]"
# echo "http://localhost:5556/$apiVersion/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"policy\":$simplePolicy,\"beneficiaryIDDocumentCID\":\"\",\"extension\":{\"coin\":\"0\"}}"
output1=$(curl -s -X POST "http://localhost:5556/$apiVersion/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"policy\":$simplePolicy,\"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 "http://localhost:5556/$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 "http://localhost:5556/$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 "http://localhost:5556/$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
}
###############################################################################################################################
execute_safeguardsecret () {
inputString="This is some random test text 1234567890!"
echo "Encrypt a String [1 Test]"
echo $output1
output1=$(curl -s -X POST "http://localhost:5556/$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 "http://localhost:5556/$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 "http://localhost:5556/$apiVersion/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":$identity}")
op1=$(echo $output1 | jq .orderReference)
commitment1=$(echo $output1 | jq .commitment)
output2=$(curl -s -X POST "http://localhost:5556/$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 "http://localhost:5556/$apiVersion/order?page=0&perPage=2&sortBy=dateCreatedDsc" -H "accept: */*")
orderReference=$(echo $outputList | jq -r ".orderReference | .[$orderIndex]")
outputOrder=$(curl -s -X GET "http://localhost:5556/$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 == "milagro" ]; then
execute_milagro
fi
if [ $plugin == "safeguardsecret" ]; then
execute_safeguardsecret
fi
execute_orderlist