summaryrefslogtreecommitdiff
path: root/src/testing/test_merchant_order_creation.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/testing/test_merchant_order_creation.sh')
-rwxr-xr-xsrc/testing/test_merchant_order_creation.sh57
1 files changed, 33 insertions, 24 deletions
diff --git a/src/testing/test_merchant_order_creation.sh b/src/testing/test_merchant_order_creation.sh
index cf029714..dbe997cb 100755
--- a/src/testing/test_merchant_order_creation.sh
+++ b/src/testing/test_merchant_order_creation.sh
@@ -5,7 +5,15 @@ set -eu
. initialize_taler_system.sh
-echo -n "First prepare wallet with coins..."
+# $1: sandbox username
+# $2: sandbox password
+# $3: payto with subject
+# $4: amount
+function wire_funds() {
+ libeufin-cli sandbox demobank new-transaction
+}
+
+echo -n "First prepare wallet with coins ..."
rm $WALLET_DB
taler-wallet-cli --no-throttle --wallet-db=$WALLET_DB api 'withdrawTestBalance' \
"$(jq -n '
@@ -14,7 +22,7 @@ taler-wallet-cli --no-throttle --wallet-db=$WALLET_DB api 'withdrawTestBalance'
bankBaseUrl: $BANK_URL,
exchangeBaseUrl: $EXCHANGE_URL
}' \
- --arg BANK_URL "$BANK_URL" \
+ --arg BANK_URL "$BANK_URL/access-api/" \
--arg EXCHANGE_URL "$EXCHANGE_URL"
)" 2>wallet-withdraw-1.err >wallet-withdraw-1.out
taler-wallet-cli --wallet-db=$WALLET_DB run-until-done 2>wallet-withdraw-finish-1.err >wallet-withdraw-finish-1.out
@@ -34,6 +42,7 @@ fi
echo -n "Configuring merchant instance ..."
# create with 2 address
+FORTYTHREE=`get_payto_uri fortythree x`
STATUS=$(curl -H "Content-Type: application/json" -X POST \
-H 'Authorization: Bearer secret-token:super_secret' \
http://localhost:9966/management/instances \
@@ -50,7 +59,11 @@ fi
STATUS=$(curl -H "Content-Type: application/json" -X PATCH \
-H 'Authorization: Bearer secret-token:super_secret' \
http://localhost:9966/instances/default/private/ \
+<<<<<<< HEAD
-d '{"auth":{"method":"external"},"payto_uris":["payto://x-taler-bank/localhost:8082/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_us" : 50000000},"default_pay_delay":{"d_us": 60000000}}' \
+=======
+ -d "{\"auth\":{\"method\":\"external\"},\"payto_uris\":[\"$FORTYTHREE\"],\"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}}" \
+>>>>>>> 0df2345 (towards libeufin based tests)
-w "%{http_code}" -s -o /dev/null)
if [ "$STATUS" != "204" ]
@@ -59,8 +72,6 @@ then
exit 1
fi
-
-
echo OK
RANDOM_IMG='data:image/png;base64,abcdefg'
@@ -327,27 +338,27 @@ echo -n "Perform wire transfers ..."
taler-exchange-aggregator -y -c $CONF -T ${TO_SLEEP}000000 -t -L INFO &> aggregator.log
taler-exchange-transfer -c $CONF -t -L INFO &> transfer.log
echo " DONE"
+echo -n "Give time to Nexus to route the payment to Sandbox..."
+sleep 3
+echo " DONE"
echo -n "Obtaining wire transfer details from bank..."
-
-# First, extract the wire transfer data from the bank.
-# As there is no "nice" API, we do this by dumping the
-# bank database and grabbing the 'right' wire transfer,
-# which is the one outgoing from the exchange (account 2).
-BANKDATA=`taler-bank-manage -c $CONF django dumpdata 2>/dev/null | tail -n1 | jq '.[] | select(.model=="app.banktransaction")' | jq 'select(.fields.debit_account==2)'`
-SUBJECT=`echo $BANKDATA | jq -r .fields.subject`
+# Emulating the previous pybank-based logic of getting
+# the wire transfer information _via the exchange_ bank
+# account. NOTE: grabbing tx == 0, since the latest
+# transaction appear first in the bank's history.
+BANKDATA=`get_bankaccount_transactions exchange x | jq '.transactions[0]'`
+SUBJECT=`echo $BANKDATA | jq -r .subject`
WTID=`echo $SUBJECT | awk '{print $1}'`
WURL=`echo $SUBJECT | awk '{print $2}'`
-CREDIT_AMOUNT=`echo $BANKDATA | jq -r .fields.amount`
-TARGET=`echo $BANKDATA | jq -r .fields.credit_account`
-# 'TARGET' is now the numeric value of the account, we need to get the actual account *name*:
-BANKADATA=`taler-bank-manage -c $CONF django dumpdata 2>/dev/null | tail -n1 | jq '.[] | select(.model=="auth.user")' | jq 'select(.pk=='$TARGET')'`
-ACCOUNT_NAME=`echo $BANKADATA | jq -r .fields.username`
-TARGET_PAYTO="payto://x-taler-bank/localhost:8082/$ACCOUNT_NAME"
+CREDIT_AMOUNT="`echo $BANKDATA | jq -r .currency`:`echo $BANKDATA | jq -r .amount`"
+TARGET=`echo $BANKDATA | jq -r .creditorIban`
+# 'TARGET' is now the IBAN.
+TARGET_PAYTO="payto://iban/SANDBOXX/$TARGET?receiver-name=Forty+Three"
if [ "$EXCHANGE_URL" != "$WURL" ]
then
- exit_fail "Wrong exchange URL in subject '$SUBJECT', expected $EXCHANGE_URL"
+ exit_fail "Wrong exchange URL in subject '$SUBJECT', expected '$EXCHANGE_URL'"
fi
echo " OK"
@@ -533,13 +544,11 @@ fi
echo " OK"
-echo -n "Removing password from account 43 ..."
-taler-bank-manage -c $CONF --with-db postgres:///$TALER_DB django changepassword_unsafe 43 x >/dev/null 2>/dev/null
-
-ACCOUNT_PASSWORD="43:x"
-BANK_HOST="localhost:8082"
+ACCOUNT_PASSWORD="fortythree:x"
+BANK_HOST="localhost:18082"
-STATUS=$(curl "http://$ACCOUNT_PASSWORD@$BANK_HOST/accounts/43" \
+# Can be replaced by the libeufin-cli way.
+STATUS=$(curl "http://$ACCOUNT_PASSWORD@$BANK_HOST/demobanks/default/access-api/accounts/fortythree" \
-w "%{http_code}" -s -o $LAST_RESPONSE)
if [ "$STATUS" != "200" ]