diff options
Diffstat (limited to 'src/testing/test_merchant_reserve_creation.sh')
-rwxr-xr-x | src/testing/test_merchant_reserve_creation.sh | 135 |
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 |