gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-merchant] branch master updated: test order creation


From: gnunet
Subject: [taler-merchant] branch master updated: test order creation
Date: Wed, 14 Apr 2021 00:02:34 +0200

This is an automated email from the git hooks/post-receive script.

sebasjm pushed a commit to branch master
in repository merchant.

The following commit(s) were added to refs/heads/master by this push:
     new c015c0ed test order creation
c015c0ed is described below

commit c015c0ed43a4b928997e6872587a182d49c62113
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Tue Apr 13 19:02:21 2021 -0300

    test order creation
---
 src/testing/initialize_taler_system.sh      |   3 +-
 src/testing/test_merchant_order_creation.sh | 114 ++++++++++++++++++++++++++++
 2 files changed, 116 insertions(+), 1 deletion(-)

diff --git a/src/testing/initialize_taler_system.sh 
b/src/testing/initialize_taler_system.sh
index 73b4b918..21f1e208 100755
--- a/src/testing/initialize_taler_system.sh
+++ b/src/testing/initialize_taler_system.sh
@@ -26,7 +26,7 @@ function cleanup()
     do
         kill $n 2> /dev/null || true
     done
-    rm -rf $CONF $WALLET_DB $TMP_DIR
+    rm -rf $CONF $WALLET_DB $TMP_DIR $LAST_RESPONSE
     wait
 }
 
@@ -37,6 +37,7 @@ cp test_template.conf $CONF
 
 TMP_DIR=`mktemp -d keys-tmp-XXXXXX`
 WALLET_DB=`mktemp test_walletXXXXXX.json`
+LAST_RESPONSE=`mktemp test_responseXXXXXX.conf`
 
 # Install cleanup handler (except for kill -9)
 trap cleanup EXIT
diff --git a/src/testing/test_merchant_order_creation.sh 
b/src/testing/test_merchant_order_creation.sh
new file mode 100755
index 00000000..ddf949aa
--- /dev/null
+++ b/src/testing/test_merchant_order_creation.sh
@@ -0,0 +1,114 @@
+#!/bin/bash
+# This file is in the public domain.
+
+. initialize_taler_system.sh
+
+echo -n "Configuring merchant 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/localhost/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"
 : 3600000},"default_pay_delay":{"d_ms": 3600000}}' \
+    -w "%{http_code}" -s -o /dev/null)
+
+if [ "$STATUS" != "204" ]
+then
+    echo 'should respond ok, instance created. got:' $STATUS
+    exit 1
+fi
+
+
+STATUS=$(curl 'http://localhost:9966/instances/default/private/products' \
+    -d '{"product_id":"2","description":"product with id 2 and price 
:15","price":"TESTKUDOS:15","total_stock":2,"description_i18n":{},"unit":"","image":{},"taxes":[],"address":{},"next_restock":{"t_ms":"never"}}'
 \
+    -w "%{http_code}" -s -o /dev/null)
+
+if [ "$STATUS" != "204" ]
+then
+    echo 'should respond ok, product created. got:' $STATUS
+    exit 1
+fi
+echo OK
+
+echo -n "Creating order with non-inventory products..."
+
+STATUS=$(curl 'http://localhost:9966/instances/default/private/orders' \
+    -d 
'{"order":{"amount":"TESTKUDOS:7","summary":"3","products":[{"description":"desct","image":"","price":"TESTKUDOS:1","taxes":[],"unit":"u","quantity":1}]}}'
 \
+    -w "%{http_code}" -s -o $LAST_RESPONSE)
+
+if [ "$STATUS" != "200" ]
+then
+    echo 'should response ok, order created. got:' $STATUS `cat $LAST_RESPONSE`
+    exit 1
+fi
+
+ORDER_ID=`jq -r .order_id < $LAST_RESPONSE`
+TOKEN=`jq -r .token < $LAST_RESPONSE`
+
+STATUS=$(curl http://localhost:9966/orders/$ORDER_ID/claim \
+    -d '{"nonce":"","token":"'$TOKEN'"}' \
+    -w "%{http_code}" -s -o $LAST_RESPONSE)
+
+if [ "$STATUS" != "200" ]
+then
+    echo 'should response ok, order claimed. got:' $STATUS `cat $LAST_RESPONSE`
+    exit 1
+fi
+
+QUANTITY=`jq -r .contract_terms.products[0].quantity < $LAST_RESPONSE`
+
+if [ "$QUANTITY" != "1" ]
+then
+    echo 'should get quantity 1. got:' $QUANTITY # `jq 
.contract_terms.products[0] < $LAST_RESPONSE`
+    exit 1
+fi
+echo OK
+
+set -x
+echo "Creating order with inventory products..."
+STATUS=$(curl 'http://localhost:9966/instances/default/private/orders' \
+    -d 
'{"order":{"amount":"TESTKUDOS:7","summary":"3"},"inventory_products":[{"product_id":"2","quantity":1}]}'
 \
+    -w "%{http_code}" -s -o $LAST_RESPONSE)
+
+
+if [ "$STATUS" != "200" ]
+then
+    echo 'should response ok, order created. got:' $STATUS `cat $LAST_RESPONSE`
+    exit 1
+fi
+
+ORDER_ID=`jq -e -r .order_id < $LAST_RESPONSE`
+TOKEN=`jq -e -r .token < $LAST_RESPONSE`
+
+STATUS=$(curl http://localhost:9966/orders/$ORDER_ID/claim \
+    -d '{"nonce":"","token":"'$TOKEN'"}' \
+    -w "%{http_code}" -s -o $LAST_RESPONSE)
+
+if [ "$STATUS" != "200" ]
+then
+    echo 'should response ok, order claimed. got:' $STATUS `cat $LAST_RESPONSE`
+    exit 1
+fi
+
+QUANTITY=`jq -r .contract_terms.products[0].quantity < $LAST_RESPONSE`
+
+if [ "$QUANTITY" != "1" ]
+then
+    echo 'should get quantity 1. got:' $QUANTITY #`jq 
.contract_terms.products[0] < $LAST_RESPONSE`
+    exit 1
+fi
+
+echo "OK"
+
+
+STATUS=$(curl 'http://localhost:9966/instances/default/private/products' \
+    -d '{"product_id":"1","description":"product with id 1 and price 
:15","price":"USD:15","total_stock":1,"description_i18n":{},"unit":"","image":{},"taxes":[],"address":{},"next_restock":{"t_ms":"never"}}'
 \
+    -w "%{http_code}" -s -o /dev/null)
+
+if [ "$STATUS" != "409" ]
+then
+#   "code": 30,
+#   "hint": "The currencies involved in the operation do not match.",
+    echo 'should respond conflict, product price is in another currency. got:' 
$STATUS
+    exit 1
+fi
+
+exit 0

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]