From aa27694514363589150efe13249ce9ea39694d63 Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Tue, 5 Jan 2010 10:09:07 +0000 Subject: Fixed shopping cart delete function. Map HTTP delete with no path info to a deleteall function, to distinguish delete of a resource and delete of the whole collection of resources. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@895970 13f79535-47bb-0310-9956-ffa450edef68 --- sca-cpp/trunk/test/store-script/shopping-cart.scm | 9 +- .../trunk/test/store-script/store-script-test.cpp | 6 +- .../trunk/test/store-script/store-script-test.scm | 149 +++++++++++++++++++++ sca-cpp/trunk/test/store-script/store-script.scm | 149 --------------------- sca-cpp/trunk/test/store-script/store.scm | 4 + 5 files changed, 163 insertions(+), 154 deletions(-) create mode 100644 sca-cpp/trunk/test/store-script/store-script-test.scm delete mode 100644 sca-cpp/trunk/test/store-script/store-script.scm (limited to 'sca-cpp/trunk/test/store-script') diff --git a/sca-cpp/trunk/test/store-script/shopping-cart.scm b/sca-cpp/trunk/test/store-script/shopping-cart.scm index b7672345d7..60981411c7 100644 --- a/sca-cpp/trunk/test/store-script/shopping-cart.scm +++ b/sca-cpp/trunk/test/store-script/shopping-cart.scm @@ -39,11 +39,16 @@ (find id (getcart cartId cache)) ) -; Delete the cart -(define (delete id cache) +; Delete the whole cart +(define (deleteall cache) (cache "delete" cartId) ) +; Delete an item from the cart +(define (delete id cache) + true +) + ; Return the price of an item (define (price item) (cadr (assoc 'price (caddr item))) diff --git a/sca-cpp/trunk/test/store-script/store-script-test.cpp b/sca-cpp/trunk/test/store-script/store-script-test.cpp index 05aefcaf8c..33b87037f1 100644 --- a/sca-cpp/trunk/test/store-script/store-script-test.cpp +++ b/sca-cpp/trunk/test/store-script/store-script-test.cpp @@ -39,7 +39,7 @@ using namespace tuscany; bool testScript() { gc_scoped_pool pool; - ifstream is("store-script.scm"); + ifstream is("store-script-test.scm"); ostringstream os; scheme::evalDriverRun(is, os, pool); assert(contains(str(os), "(\"Sample Feed\" \"")); @@ -52,7 +52,7 @@ bool testScript() { bool testEval() { { gc_scoped_pool pool; - ifstream is("store-script.scm"); + ifstream is("store-script-test.scm"); ostringstream os; scheme::setupDisplay(os); scheme::Env globalEnv = scheme::setupEnvironment(pool); @@ -66,7 +66,7 @@ bool testEval() { { gc_scoped_pool pool; - ifstream is("store-script.scm"); + ifstream is("store-script-test.scm"); ostringstream os; scheme::setupDisplay(os); diff --git a/sca-cpp/trunk/test/store-script/store-script-test.scm b/sca-cpp/trunk/test/store-script/store-script-test.scm new file mode 100644 index 0000000000..30c10d8184 --- /dev/null +++ b/sca-cpp/trunk/test/store-script/store-script-test.scm @@ -0,0 +1,149 @@ +; Currency implementation + +(define (currency_convert from to amount) + (if (equal? to "EUR") (* amount 0.70) amount) +) + +(define (currency_symbol currency) + (if (equal? currency "EUR") "E" "$") +) + +(define (currency_impl op args) + (cond + ((equal? op "convert") (apply currency_convert args)) + ((equal? op "symbol") (apply currency_symbol args)) + ) +) + +; Currency composite + +(define (currency_service op . args) (currency_impl op args)) + +; Catalog implementation + +(define (catalog_get converter) + (define (convert price) (converter "convert" "USD" "USD" price)) + + (define code "USD") + (define symbol (converter "symbol" code)) + + (list + (list (list 'javaClass "services.Item") (list 'name "Apple") (list 'currencyCode code) (list 'currencySymbol symbol) (list 'price 2.99)) + (list (list 'javaClass "services.Item") (list 'name "Orange") (list 'currencyCode code) (list 'currencySymbol symbol) (list 'price 3.55)) + (list (list 'javaClass "services.Item") (list 'name "Pear") (list 'currencyCode code) (list 'currencySymbol symbol) (list 'price 1.55)) + ) +) + +(define (catalog_impl converter op args) + (cond + ((equal? op "get") (apply catalog_get (cons converter args))) + ) +) + +; Catalog composite + +(define (catalog_service op . args) (catalog_impl currency_service op args)) + +; Cart implementation + +(define (cart_post content item) + (cons (cons "Item" (list (uuid) item)) content) +) + +(define (cart_getall content) + (cons "Sample Feed" (cons (uuid) content)) +) + +(define (cart_getentry id) + (define entry (list (list 'name "Apple") (list 'currencyCode "USD") (list 'currencySymbol "$") (list 'price 2.99))) + (cons "Item" (list id entry)) +) + +(define (cart_gettotal) + 10.0 +) + +(define (cart_impl op args) + (cond + ((equal? op "post") (apply cart_post args)) + ((equal? op "getall") (apply cart_getall args)) + ((equal? op "getentry") (apply cart_getentry args)) + ((equal? op "gettotal") (apply cart_gettotal args)) + ) +) + +; Store UI implementation + +(define (storeui_post cart content item) + (cart "post" content item) +) + +(define (storeui_getcart cart content) + (cart "getall" content) +) + +(define (storeui_getentry cart id) + (cart "getentry" id) +) + +(define (storeui_getcatalog catalog) + (catalog "get") +) + +(define (storeui_gettotal cart) + (cart "gettotal") +) + +(define (storeui_impl cart catalog op args) + (cond + ((equal? op "post") (apply storeui_post (cons cart args))) + ((equal? op "getall") (apply storeui_getcart (cons cart args))) + ((equal? op "getentry") (apply storeui_getentry (cons cart args))) + ((equal? op "getcatalog") (apply storeui_getcatalog (cons catalog args))) + ((equal? op "gettotal") (apply storeui_gettotal (cons cart args))) + ) +) + +; Store UI composite + +(define (cart_service op . args) (cart_impl op args)) + +(define (storeui_service op . args) (storeui_impl cart_service catalog_service op args)) + +; Store UI test case + +(define catalog (storeui_service "getcatalog")) +(define empty (list)) +(define apple (car catalog)) +(define orange (car (cdr catalog))) +(define added1 (storeui_service "post" empty apple)) +(define added2 (storeui_service "post" added1 orange)) +(display (storeui_service "getall" added2)) +(display (storeui_service "gettotal")) + +; Store UI JSON-RPC interop test case + +(define (system.listMethods) (list "Service.get" "Service.getTotal")) + +(define (Service.get) (storeui_service "getcatalog")) + +(define (.get) (storeui_service "getcatalog")) + +(define (Service.getTotal) (storeui_service "gettotal")) + +; Store UI ATOMPub interop test case + +(define (getall) (storeui_service "getall" added2)) + +(define (get id) (storeui_service "getentry" id)) + +(define (post entry) + (display entry) + (uuid) +) + +(define (delete id) + (display id) + true +) + diff --git a/sca-cpp/trunk/test/store-script/store-script.scm b/sca-cpp/trunk/test/store-script/store-script.scm deleted file mode 100644 index 30c10d8184..0000000000 --- a/sca-cpp/trunk/test/store-script/store-script.scm +++ /dev/null @@ -1,149 +0,0 @@ -; Currency implementation - -(define (currency_convert from to amount) - (if (equal? to "EUR") (* amount 0.70) amount) -) - -(define (currency_symbol currency) - (if (equal? currency "EUR") "E" "$") -) - -(define (currency_impl op args) - (cond - ((equal? op "convert") (apply currency_convert args)) - ((equal? op "symbol") (apply currency_symbol args)) - ) -) - -; Currency composite - -(define (currency_service op . args) (currency_impl op args)) - -; Catalog implementation - -(define (catalog_get converter) - (define (convert price) (converter "convert" "USD" "USD" price)) - - (define code "USD") - (define symbol (converter "symbol" code)) - - (list - (list (list 'javaClass "services.Item") (list 'name "Apple") (list 'currencyCode code) (list 'currencySymbol symbol) (list 'price 2.99)) - (list (list 'javaClass "services.Item") (list 'name "Orange") (list 'currencyCode code) (list 'currencySymbol symbol) (list 'price 3.55)) - (list (list 'javaClass "services.Item") (list 'name "Pear") (list 'currencyCode code) (list 'currencySymbol symbol) (list 'price 1.55)) - ) -) - -(define (catalog_impl converter op args) - (cond - ((equal? op "get") (apply catalog_get (cons converter args))) - ) -) - -; Catalog composite - -(define (catalog_service op . args) (catalog_impl currency_service op args)) - -; Cart implementation - -(define (cart_post content item) - (cons (cons "Item" (list (uuid) item)) content) -) - -(define (cart_getall content) - (cons "Sample Feed" (cons (uuid) content)) -) - -(define (cart_getentry id) - (define entry (list (list 'name "Apple") (list 'currencyCode "USD") (list 'currencySymbol "$") (list 'price 2.99))) - (cons "Item" (list id entry)) -) - -(define (cart_gettotal) - 10.0 -) - -(define (cart_impl op args) - (cond - ((equal? op "post") (apply cart_post args)) - ((equal? op "getall") (apply cart_getall args)) - ((equal? op "getentry") (apply cart_getentry args)) - ((equal? op "gettotal") (apply cart_gettotal args)) - ) -) - -; Store UI implementation - -(define (storeui_post cart content item) - (cart "post" content item) -) - -(define (storeui_getcart cart content) - (cart "getall" content) -) - -(define (storeui_getentry cart id) - (cart "getentry" id) -) - -(define (storeui_getcatalog catalog) - (catalog "get") -) - -(define (storeui_gettotal cart) - (cart "gettotal") -) - -(define (storeui_impl cart catalog op args) - (cond - ((equal? op "post") (apply storeui_post (cons cart args))) - ((equal? op "getall") (apply storeui_getcart (cons cart args))) - ((equal? op "getentry") (apply storeui_getentry (cons cart args))) - ((equal? op "getcatalog") (apply storeui_getcatalog (cons catalog args))) - ((equal? op "gettotal") (apply storeui_gettotal (cons cart args))) - ) -) - -; Store UI composite - -(define (cart_service op . args) (cart_impl op args)) - -(define (storeui_service op . args) (storeui_impl cart_service catalog_service op args)) - -; Store UI test case - -(define catalog (storeui_service "getcatalog")) -(define empty (list)) -(define apple (car catalog)) -(define orange (car (cdr catalog))) -(define added1 (storeui_service "post" empty apple)) -(define added2 (storeui_service "post" added1 orange)) -(display (storeui_service "getall" added2)) -(display (storeui_service "gettotal")) - -; Store UI JSON-RPC interop test case - -(define (system.listMethods) (list "Service.get" "Service.getTotal")) - -(define (Service.get) (storeui_service "getcatalog")) - -(define (.get) (storeui_service "getcatalog")) - -(define (Service.getTotal) (storeui_service "gettotal")) - -; Store UI ATOMPub interop test case - -(define (getall) (storeui_service "getall" added2)) - -(define (get id) (storeui_service "getentry" id)) - -(define (post entry) - (display entry) - (uuid) -) - -(define (delete id) - (display id) - true -) - diff --git a/sca-cpp/trunk/test/store-script/store.scm b/sca-cpp/trunk/test/store-script/store.scm index 01f72d0bea..e325a65d74 100644 --- a/sca-cpp/trunk/test/store-script/store.scm +++ b/sca-cpp/trunk/test/store-script/store.scm @@ -20,6 +20,10 @@ (shoppingCart "gettotal") ) +(define (deleteall catalog shoppingCart shoppingTotal) + (shoppingCart "deleteall") +) + (define (delete id catalog shoppingCart shoppingTotal) (shoppingCart "delete" id) ) -- cgit v1.2.3