diff options
Diffstat (limited to '')
-rw-r--r-- | cpp/sca/test/store-script/store-script-test.cpp | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/cpp/sca/test/store-script/store-script-test.cpp b/cpp/sca/test/store-script/store-script-test.cpp index 8eac2f7b8b..2d1891dd14 100644 --- a/cpp/sca/test/store-script/store-script-test.cpp +++ b/cpp/sca/test/store-script/store-script-test.cpp @@ -27,10 +27,16 @@ #include <iostream> #include <fstream> #include <string> +#include "list.hpp" #include "driver.hpp" +#include "slist.hpp" +#include "xml.hpp" +#include "../json/json.hpp" namespace store { +using namespace tuscany; + bool contains(const std::string& str, const std::string& pattern) { return str.find(pattern) != str.npos; } @@ -38,16 +44,16 @@ bool contains(const std::string& str, const std::string& pattern) { bool testScript() { std::ifstream is("store.scm", std::ios_base::in); std::ostringstream os; - tuscany::evalDriverRun(is, os); - assert(contains(os.str(), "List::(List::(List::(Symbol::name, (String::\"apple\", ())), (List::(Symbol::currency, (String::\"USD\", ())), (List::(Symbol::symbol, (String::\"$\", ())), (List::(Symbol::price, (Number::2.99, ())), ())))), ())")); + eval::evalDriverRun(is, os); + assert(contains(os.str(), "(string::\"Sample Feed\", string::\"123\", (string::\"Item\", string::\"123456789\", ((symbol::javaClass, string::\"services.Item\"), (symbol::name, string::\"Orange\"), (symbol::currency, string::\"USD\"), (symbol::symbol, string::\"$\"), (symbol::price, number::3.55))), (string::\"Item\", string::\"123456789\", ((symbol::javaClass, string::\"services.Item\"), (symbol::name, string::\"Apple\"), (symbol::currency, string::\"USD\"), (symbol::symbol, string::\"$\"), (symbol::price, number::2.99))))")); return true; } -const tuscany::value evalLoop(std::istream& is, const tuscany::value& req, tuscany::Env& globalEnv) { - tuscany::value in = tuscany::read(is); - if(tuscany::isNil(in)) - return tuscany::eval(req, globalEnv); - tuscany::eval(in, globalEnv); +const value evalLoop(std::istream& is, const value& req, eval::Env& globalEnv) { + value in = eval::read(is); + if(isNil(in)) + return eval::evalApply(req, globalEnv); + eval::evalApply(in, globalEnv); return evalLoop(is, req, globalEnv); } @@ -55,31 +61,30 @@ bool testEval() { { std::ifstream is("store.scm", std::ios_base::in); std::ostringstream os; + eval::setupEvalOut(os); + eval::Env globalEnv = eval::setupEnvironment(); - tuscany::setupEvalOut(os); - tuscany::Env globalEnv = tuscany::setupEnvironment(); - - const tuscany::value req(tuscany::mklist<tuscany::value>("storeui_service", std::string("getcatalog"))); - const tuscany::value res = evalLoop(is, req, globalEnv); + const value req(mklist<value>("storeui_service", std::string("getcatalog"))); + const value val = evalLoop(is, req, globalEnv); - std::ostringstream rs; - rs << res; - assert(contains(rs.str(), "List::(List::(List::(Symbol::name, (String::\"apple\", ())), (List::(Symbol::currency, (String::\"USD\", ())), (List::(Symbol::symbol, (String::\"$\", ())), (List::(Symbol::price, (Number::2.99, ())), ())))), (List::(List::(Symbol::name, (String::\"orange\", ())), (List::(Symbol::currency, (String::\"USD\", ())), (List::(Symbol::symbol, (String::\"$\", ())), (List::(Symbol::price, (Number::3.55, ())), ())))), (List::(List::(Symbol::name, (String::\"pear\", ())), (List::(Symbol::currency, (String::\"USD\", ())), (List::(Symbol::symbol, (String::\"$\", ())), (List::(Symbol::price, (Number::1.55, ())), ())))), ())))")); + std::ostringstream vs; + vs << val; + assert(contains(vs.str(),"(((symbol::javaClass, string::\"services.Item\"), (symbol::name, string::\"Apple\"), (symbol::currency, string::\"USD\"), (symbol::symbol, string::\"$\"), (symbol::price, number::2.99)), ((symbol::javaClass, string::\"services.Item\"), (symbol::name, string::\"Orange\"), (symbol::currency, string::\"USD\"), (symbol::symbol, string::\"$\"), (symbol::price, number::3.55)), ((symbol::javaClass, string::\"services.Item\"), (symbol::name, string::\"Pear\"), (symbol::currency, string::\"USD\"), (symbol::symbol, string::\"$\"), (symbol::price, number::1.55)))")); } { std::ifstream is("store.scm", std::ios_base::in); std::ostringstream os; - tuscany::setupEvalOut(os); - tuscany::Env globalEnv = tuscany::setupEnvironment(); + eval::setupEvalOut(os); + eval::Env globalEnv = eval::setupEnvironment(); - const tuscany::value req(tuscany::mklist<tuscany::value>("storeui_service", std::string("gettotal"))); - const tuscany::value res = evalLoop(is, req, globalEnv); + const value req(mklist<value>("storeui_service", std::string("gettotal"))); + const value res = evalLoop(is, req, globalEnv); std::ostringstream rs; rs << res; - assert(contains(rs.str(), "Number::10")); + assert(contains(rs.str(), "number::10")); } return true; } |