From e6da8c63e2d1bb71100508d84a5fee63f3a67463 Mon Sep 17 00:00:00 2001 From: Max Neunhoeffer Date: Thu, 24 Jul 2014 23:41:44 +0200 Subject: [PATCH] Change Json wrapper class test. --- arangod/Aql/ExecutionPlan.cpp | 114 +++++++++++++++++++++++++--------- 1 file changed, 86 insertions(+), 28 deletions(-) diff --git a/arangod/Aql/ExecutionPlan.cpp b/arangod/Aql/ExecutionPlan.cpp index 12fa441655..4cbb6753ca 100644 --- a/arangod/Aql/ExecutionPlan.cpp +++ b/arangod/Aql/ExecutionPlan.cpp @@ -101,34 +101,6 @@ void ExecutionPlan::appendAsString (std::string& st, int indent) { st.push_back('>'); } -//////////////////////////////////////////////////////////////////////////////// -/// @brief test function -//////////////////////////////////////////////////////////////////////////////// - -void testExecutionPlans () { - ExecutionPlan* e = new ExecutionPlan(); - ExecutionPlan* f = new ExecutionPlan(e); - std::string st; - e->appendAsString(st, 0); - std::cout << "e as string:\n" << st << std::endl; - st.clear(); - f->appendAsString(st, 0); - std::cout << "f as string:\n" << st << std::endl; - TRI_json_t* json = e->toJson(TRI_UNKNOWN_MEM_ZONE); - if (json != nullptr) { - std::cout << "e as JSON:\n" << - triagens::basics::JsonHelper::toString(json) << std::endl; - } - TRI_FreeJson(TRI_UNKNOWN_MEM_ZONE, json); - json = f->toJson(TRI_UNKNOWN_MEM_ZONE); - if (json != nullptr) { - std::cout << "f as JSON:\n" << - triagens::basics::JsonHelper::toString(json) << std::endl; - } - TRI_FreeJson(TRI_UNKNOWN_MEM_ZONE, json); - delete f; // should not leave a leak -} - //////////////////////////////////////////////////////////////////////////////// /// @brief toJson, for EnumerateCollectionPlan //////////////////////////////////////////////////////////////////////////////// @@ -143,6 +115,92 @@ TRI_json_t* EnumerateCollectionPlan::toJson (TRI_memory_zone_t* zone) { return json; } +//////////////////////////////////////////////////////////////////////////////// +/// @brief test function +//////////////////////////////////////////////////////////////////////////////// + +using namespace triagens::basics; + +void testExecutionPlans () { + ExecutionPlan* e = new ExecutionPlan(); + ExecutionPlan* f = new ExecutionPlan(e); + std::string st; + e->appendAsString(st, 0); + std::cout << "e as string:\n" << st << std::endl; + st.clear(); + f->appendAsString(st, 0); + std::cout << "f as string:\n" << st << std::endl; + TRI_json_t* json = e->toJson(TRI_UNKNOWN_MEM_ZONE); + if (json != nullptr) { + std::cout << "e as JSON:\n" << + JsonHelper::toString(json) << std::endl; + } + TRI_FreeJson(TRI_UNKNOWN_MEM_ZONE, json); + json = f->toJson(TRI_UNKNOWN_MEM_ZONE); + if (json != nullptr) { + std::cout << "f as JSON:\n" << + JsonHelper::toString(json) << std::endl; + } + TRI_FreeJson(TRI_UNKNOWN_MEM_ZONE, json); + delete f; // should not leave a leak + + json = Json(12); + std::cout << JsonHelper::toString(json) << std::endl; + TRI_FreeJson(TRI_UNKNOWN_MEM_ZONE, json); + + json = Json(true); + std::cout << JsonHelper::toString(json) << std::endl; + TRI_FreeJson(TRI_UNKNOWN_MEM_ZONE, json); + + json = Json(Json::Null); + std::cout << JsonHelper::toString(json) << std::endl; + TRI_FreeJson(TRI_UNKNOWN_MEM_ZONE, json); + + json = Json(Json::String); + std::cout << JsonHelper::toString(json) << std::endl; + TRI_FreeJson(TRI_UNKNOWN_MEM_ZONE, json); + + json = Json(Json::List); + std::cout << JsonHelper::toString(json) << std::endl; + TRI_FreeJson(TRI_UNKNOWN_MEM_ZONE, json); + + json = Json(Json::Array); + std::cout << JsonHelper::toString(json) << std::endl; + TRI_FreeJson(TRI_UNKNOWN_MEM_ZONE, json); + + json = Json(Json::Array, 10) + ("myinteger", Json(12)) + ("mystring", Json("hallo")) + ("mybool", Json(false)) + ("mynull", Json(Json::Null)) + ("mylist", Json(Json::List, 3) + (Json(1)) + (Json(2)) + (Json(3))) + ("myarray", Json(Json::Array, 2) + ("a",Json("hallo")) + ("b",Json(13))); + std::cout << JsonHelper::toString(json) << std::endl; + TRI_FreeJson(TRI_UNKNOWN_MEM_ZONE, json); + + Json j(Json::Array); + j("a", Json(12)) + ("b", Json(true)) + ("c", Json(Json::List) + (Json(1))(Json(2))(Json(3))) + ("d", Json(Json::Array) + ("x", Json(12)) + ("y", Json(true))); + std::cout << j.toString() << std::endl; + + std::cout << j.get("a").toString() << std::endl; + + Json k = j.get("c"); + Json l = k.at(2); + + std::cout << l.toString() << std::endl; +} + // Local Variables: // mode: outline-minor // outline-regexp: "^\\(/// @brief\\|/// {@inheritDoc}\\|/// @addtogroup\\|// --SECTION--\\|/// @\\}\\)"