summaryrefslogtreecommitdiff
path: root/src/testing/test_merchant_reserve_creation.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/testing/test_merchant_reserve_creation.sh')
-rwxr-xr-xsrc/testing/test_merchant_reserve_creation.sh135
1 files changed, 73 insertions, 62 deletions
diff --git a/src/testing/test_merchant_reserve_creation.sh b/src/testing/test_merchant_reserve_creation.sh
index f68c4834..6a45e387 100755
--- a/src/testing/test_merchant_reserve_creation.sh
+++ b/src/testing/test_merchant_reserve_creation.sh
@@ -19,18 +19,18 @@
set -eu
-. initialize_taler_system.sh
+. setup.sh
+# Launch exchange, merchant and bank.
+setup -c "test_template.conf" -enms -u "exchange-account-1" -d "iban"
+LAST_RESPONSE=$(mktemp test_response.conf-XXXXXX)
+CONF="test_template.conf.edited"
echo -n "Configuring merchant instance ..."
-# create instance
-FORTYTHREE=`get_payto_uri fortythree x`
-echo -n "."
-
STATUS=$(curl -H "Content-Type: application/json" -X POST \
-H 'Authorization: Bearer secret-token:super_secret' \
http://localhost:9966/management/instances \
- -d '{"auth":{"method":"external"},"accounts":[{"payto_uri":"payto://x-taler-bank/localhost:1'$NEXUS_PORT'/43"}],"id":"default","name":"default","user_type":"business","address":{},"jurisdiction":{},"default_max_wire_fee":"TESTKUDOS:1", "default_max_deposit_fee":"TESTKUDOS:1","default_wire_fee_amortization":1,"default_wire_transfer_delay":{"d_us" : 50000000},"default_pay_delay":{"d_us": 60000000}}' \
+ -d '{"auth":{"method":"external"},"accounts":[{"payto_uri":"payto://x-taler-bank/localhost:18082/43"}],"id":"default","name":"default","user_type":"business","address":{},"jurisdiction":{},"default_max_wire_fee":"TESTKUDOS:1", "default_max_deposit_fee":"TESTKUDOS:1","default_wire_fee_amortization":1,"default_wire_transfer_delay":{"d_us" : 50000000},"default_pay_delay":{"d_us": 60000000}}' \
-w "%{http_code}" -s -o /dev/null)
if [ "$STATUS" != "204" ]
@@ -40,142 +40,153 @@ fi
echo "OK"
echo -n "Creating reserve ..."
+#bash
+
STATUS=$(curl 'http://localhost:9966/instances/default/private/reserves' \
- -d '{"initial_balance":"TESTKUDOS:2","exchange_url":"'$EXCHANGE_URL'","wire_method":"iban"}' \
- -w "%{http_code}" -s -o $LAST_RESPONSE)
+ -d '{"initial_balance":"TESTKUDOS:2","exchange_url":"http://localhost:8081/","wire_method":"iban"}' \
+ -w "%{http_code}" -s -o "$LAST_RESPONSE")
if [ "$STATUS" != "200" ]
then
+ cat "$LAST_RESPONSE"
exit_fail "Expected 200, reserve created. Got instead: $STATUS"
fi
echo "OK"
-RESERVE_PUB=`jq -r .reserve_pub < $LAST_RESPONSE`
+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)
+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`
+FUNDED=$(jq -r '.merchant_initial_amount == .exchange_initial_amount' < "$LAST_RESPONSE")
if [ "$FUNDED" != "false" ]
then
- cat $LAST_RESPONSE
- exit_fail "Should not yet be funded if we just created. Got: $STATUS is founded: $FUNDED"
+ cat "$LAST_RESPONSE"
+ exit_fail "Should not yet be funded if we just created. Got: $STATUS is founded: $FUNDED"
fi
echo -n "Wire transferring... "
# Exchange wants TESTKUDOS:2 from account 43, under RESERVE_PUB.
-EXCHANGE_PAYTO=`get_payto_uri exchange x`
+EXCHANGE_PAYTO=$(get_payto_uri exchange x)
export LIBEUFIN_SANDBOX_USERNAME=fortythree
export LIBEUFIN_SANDBOX_PASSWORD=x
export LIBEUFIN_SANDBOX_URL="http://localhost:18082/"
libeufin-cli sandbox demobank new-transaction \
- --bank-account fortythree \
+ --bank-account "fortythree" \
--payto-with-subject "$EXCHANGE_PAYTO&message=$RESERVE_PUB" \
- --amount TESTKUDOS:2
+ --amount "TESTKUDOS:2"
unset LIBEUFIN_SANDBOX_USERNAME
unset LIBEUFIN_SANDBOX_PASSWORD
unset LIBEUFIN_SANDBOX_URL
echo "OK"
-echo -n "Give Nexus time to detect the payment... "
+echo -n "Give Nexus time to detect the payment (FIXME)... "
sleep 10 # FIXME-MS: replace with call to Nexus to right now poll the sandbox ...
+# This seems to not work (exchange user unknown). Not sure why.
+#export LIBEUFIN_NEXUS_USERNAME=exchange
+#export LIBEUFIN_NEXUS_PASSWORD=x
+#export LIBEUFIN_NEXUS_URL="http://localhost:8082/"
+#libeufin-cli \
+# accounts \
+# fetch-transactions \
+# exchange \
+# &> libeufin-transfer-fetch.out
+#unset LIBEUFIN_NEXUS_USERNAME
+#unset LIBEUFIN_NEXUS_PASSWORD
+#unset LIBEUFIN_NEXUS_URL
echo "OK"
-# Stop existing background service, we need to run it here, now, and only once
-kill -TERM $WIREWATCH_PID
-wait $WIREWATCH_PID
-
-taler-exchange-wirewatch -c $CONF -t -L INFO &> taler-exchange-wirewatch.log
+echo "Fetch transaction for exchange"
+# Run wirewatch here, now, and only once
+taler-exchange-wirewatch \
+ -c "$CONF" \
+ -t \
+ -L "INFO" \
+ &> taler-exchange-wirewatch.log
-STATUS=$(curl 'http://localhost:9966/instances/default/private/reserves/'$RESERVE_PUB \
- -w "%{http_code}" -s -o $LAST_RESPONSE)
-
-export LAST_RESPONSE
-
-FUNDED=`jq -r '.merchant_initial_amount == .exchange_initial_amount' < $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" != "true" ]
then
- cat $LAST_RESPONSE
- exit_fail "should be funded. got: $STATUS is founded: $FUNDED"
+ cat "$LAST_RESPONSE"
+ exit_fail "should be funded. got: $STATUS is founded: $FUNDED"
fi
-ACCOUNTS=`jq -r '.accounts|length' < $LAST_RESPONSE`
-
+ACCOUNTS=$(jq -r '.accounts|length' < "$LAST_RESPONSE")
if [ "x$ACCOUNTS" != "x1" ]
then
- cat $LAST_RESPONSE
+ cat "$LAST_RESPONSE"
exit_fail "Expected 1 account in response. got: $ACCOUNTS"
fi
echo -n "authorizing tip ..."
-STATUS=$(curl 'http://localhost:9966/instances/default/private/reserves/'$RESERVE_PUB'/authorize-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)
+ -w "%{http_code}" -s -o "$LAST_RESPONSE")
if [ "$STATUS" != "200" ]
then
exit_fail "should respond failed, we did not fund yet. got: $STATUS"
fi
+echo "OK"
-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)
+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`
+TIPS_SIZE=$(jq -r ".tips | length" < "$LAST_RESPONSE")
if [ "$TIPS_SIZE" != "1" ]
then
- cat $LAST_RESPONSE
- exit_fail "should respond 1, just 1 tip. got: $TIPS_SIZE"
+ cat "$LAST_RESPONSE"
+ exit_fail "Expected 1 tip. got: $TIPS_SIZE"
fi
-TIP_ID=`jq -r .tips[0].tip_id < $LAST_RESPONSE`
+TIP_ID=$(jq -r .tips[0].tip_id < "$LAST_RESPONSE")
-echo found
+echo "Found"
-echo -n Checking tip status ....
+echo -n "Checking tip status ..."
-STATUS=$(curl 'http://localhost:9966/instances/default/private/tips/'$TIP_ID \
- -w "%{http_code}" -s -o $LAST_RESPONSE)
+STATUS=$(curl 'http://localhost:9966/instances/default/private/tips/'"$TIP_ID" \
+ -w "%{http_code}" -s -o "$LAST_RESPONSE")
if [ "$STATUS" != "200" ]
then
- cat $LAST_RESPONSE
- exit_fail "should respond ok, tip found. got: $STATUS"
+ cat "$LAST_RESPONSE"
+ exit_fail "Expected 200, tip found. got: $STATUS"
fi
echo -n " ... "
-STATUS=$(curl 'http://localhost:9966/instances/default/private/tips/'$TIP_ID'?pickups=yes' \
- -w "%{http_code}" -s -o $LAST_RESPONSE)
+STATUS=$(curl 'http://localhost:9966/instances/default/private/tips/'"$TIP_ID"'?pickups=yes' \
+ -w "%{http_code}" -s -o "$LAST_RESPONSE")
if [ "$STATUS" != "200" ]
then
- cat $LAST_RESPONSE
- exit_fail "should respond ok, tip found. got: $STATUS"
+ cat "$LAST_RESPONSE"
+ exit_fail "Expected 200, tip found. got: $STATUS"
fi
-
-echo OK
+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":"iban"}' \
- -w "%{http_code}" -s -o $LAST_RESPONSE)
+ -d '{"initial_balance":"INVALID:2","exchange_url":"http://localhost:8081/","wire_method":"iban"}' \
+ -w "%{http_code}" -s -o "$LAST_RESPONSE")
if [ "$STATUS" != "400" ]
then
- exit_fail "Should respond invalid, bad currency. got: $STATUS"
+ exit_fail "Expected 400, bad currency. got: $STATUS"
fi
+echo "FAILED (which is expected)"
-echo "FAILED (which is ok)"
-
+echo "Test PASSED"
exit 0