summaryrefslogtreecommitdiff
path: root/src/testing
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2021-05-28 13:02:14 -0300
committerSebastian <sebasjm@gmail.com>2021-05-28 13:03:08 -0300
commit3ede019d207c97ac1ba9c84b45ace5788b3dcffe (patch)
treee36edfb2d5621948531beb223a972b1e6b8b5568 /src/testing
parentdcaa1bb5ca854c9822c20229502ec25869bcb012 (diff)
downloadmerchant-3ede019d207c97ac1ba9c84b45ace5788b3dcffe.tar.gz
merchant-3ede019d207c97ac1ba9c84b45ace5788b3dcffe.tar.bz2
merchant-3ede019d207c97ac1ba9c84b45ace5788b3dcffe.zip
reserve creation test
Diffstat (limited to 'src/testing')
-rwxr-xr-xsrc/testing/test_merchant_reserve_creation.sh158
1 files changed, 158 insertions, 0 deletions
diff --git a/src/testing/test_merchant_reserve_creation.sh b/src/testing/test_merchant_reserve_creation.sh
new file mode 100755
index 00000000..2bb4b8d1
--- /dev/null
+++ b/src/testing/test_merchant_reserve_creation.sh
@@ -0,0 +1,158 @@
+#!/bin/bash
+# This file is in the public domain.
+
+. initialize_taler_system.sh
+
+echo -n "Configuring merchant instance ..."
+
+# create instance
+STATUS=$(curl -H "Content-Type: application/json" -X POST \
+ -H 'Authorization: Bearer secret-token:super_secret' \
+ http://localhost:9966/private/instances \
+ -d '{"auth":{"method":"external"},"payto_uris":["payto://x-taler-bank/'$BANK_URL'/43"],"id":"default","name":"default","address":{},"jurisdiction":{},"default_max_wire_fee":"TESTKUDOS:1", "default_max_deposit_fee":"TESTKUDOS:1","default_wire_fee_amortization":1,"default_wire_transfer_delay":{"d_ms" : 50000},"default_pay_delay":{"d_ms": 60000}}' \
+ -w "%{http_code}" -s -o /dev/null)
+
+if [ "$STATUS" != "204" ]
+then
+ echo 'should respond ok, instance created. got:' $STATUS
+ exit 1
+fi
+
+echo OK
+
+# echo -n "trying to create invalid reserve ..."
+
+# STATUS=$(curl 'http://localhost:9966/instances/default/private/reserves' \
+# -d '{"initial_balance":"INVALID:2","exchange_url":"'$EXCHANGE_URL'","wire_method":"x-taler-bank"}' \
+# -w "%{http_code}" -s -o $LAST_RESPONSE)
+
+# if [ "$STATUS" != "400" ]
+# then
+# echo 'should respond invalid, bad currency. got:' $STATUS
+# exit 1
+# fi
+
+# echo "FAILED (which is ok)"
+
+
+echo -n "creating reserve ..."
+
+STATUS=$(curl 'http://localhost:9966/instances/default/private/reserves' \
+ -d '{"initial_balance":"TESTKUDOS:2","exchange_url":"'$EXCHANGE_URL'","wire_method":"x-taler-bank"}' \
+ -w "%{http_code}" -s -o $LAST_RESPONSE)
+
+
+if [ "$STATUS" != "200" ]
+then
+ echo 'should respond ok, reserve created. got:' $STATUS
+ exit 1
+fi
+
+echo OK
+
+RESERVE_PUB=`jq -r .reserve_pub < $LAST_RESPONSE`
+
+STATUS=$(curl 'http://localhost:9966/instances/default/private/reserves/'$RESERVE_PUB \
+ -w "%{http_code}" -s -o $LAST_RESPONSE)
+
+FUNDED=`jq -r '.merchant_initial_amount == .exchange_initial_amount' < $LAST_RESPONSE`
+
+if [ "$FUNDED" != "false" ]
+then
+ echo 'should not be funded if we just created. got:' $STATUS 'is founded: ' $FUNDED
+ cat $LAST_RESPONSE
+ exit 1
+fi
+
+
+echo -n Wire transfering...
+STATUS=$(curl http://Exchange:x@localhost:$BANK_PORT/taler-wire-gateway/Exchange/admin/add-incoming \
+ -d '{"reserve_pub":"'$RESERVE_PUB'","debit_account":"payto://x-taler-bank/localhost:'$BANK_PORT'/43","amount":"TESTKUDOS:2"}' \
+ -w "%{http_code}" -s -o $LAST_RESPONSE)
+
+if [ "$STATUS" != "200" ]
+then
+ echo 'should respond ok, wire transfer executed. got:' $STATUS
+ exit 1
+fi
+
+echo OK
+
+taler-exchange-wirewatch -c $CONF -t -L INFO
+
+#there seems to be a race condition here so we wait
+sleep 1
+
+STATUS=$(curl 'http://localhost:9966/instances/default/private/reserves/'$RESERVE_PUB \
+ -w "%{http_code}" -s -o $LAST_RESPONSE)
+
+FUNDED=`jq -r '.merchant_initial_amount == .exchange_initial_amount' < $LAST_RESPONSE`
+
+if [ "$FUNDED" != "true" ]
+then
+ echo 'should be funded. got:' $STATUS 'is founded: ' $FUNDED
+ cat $LAST_RESPONSE
+ exit 1
+fi
+
+
+echo -n "authorizing tip ..."
+
+STATUS=$(curl 'http://localhost:9966/instances/default/private/reserves/'$RESERVE_PUB'/authorize-tip' \
+ -d '{"amount":"TESTKUDOS:1","justification":"off course","next_url":"https://taler.net/"}' \
+ -w "%{http_code}" -s -o $LAST_RESPONSE)
+
+if [ "$STATUS" != "200" ]
+then
+ echo 'should respond failed, we didnt funded yet. got:' $STATUS
+ exit 1
+fi
+
+echo OK
+
+echo -n Checking tip ....
+STATUS=$(curl 'http://localhost:9966/instances/default/private/reserves/'$RESERVE_PUB'?tips=yes' \
+ -w "%{http_code}" -s -o $LAST_RESPONSE)
+
+TIPS_SIZE=`jq -r ".tips | length" < $LAST_RESPONSE`
+
+if [ "$TIPS_SIZE" != "1" ]
+then
+ echo 'should respond 1, just 1 tip. got:' $TIPS_SIZE
+ cat $LAST_RESPONSE
+ exit 1
+fi
+
+TIP_ID=`jq -r .tips[0].tip_id < $LAST_RESPONSE`
+
+echo found
+
+echo -n Checking tip status ....
+
+STATUS=$(curl 'http://localhost:9966/instances/default/private/tips/'$TIP_ID \
+ -w "%{http_code}" -s -o $LAST_RESPONSE)
+
+if [ "$STATUS" != "200" ]
+then
+ echo 'should respond ok, tip found. got:' $STATUS
+ cat $LAST_RESPONSE
+ exit 1
+fi
+
+echo -n " ... "
+
+STATUS=$(curl 'http://localhost:9966/instances/default/private/tips/'$TIP_ID'?pickups=yes' \
+ -w "%{http_code}" -s -o $LAST_RESPONSE)
+
+if [ "$STATUS" != "200" ]
+then
+ echo 'should respond ok, tip found. got:' $STATUS
+ cat $LAST_RESPONSE
+ exit 1
+fi
+
+echo OK
+
+exit 0
+
+