1
0
Fork 0

Change Json wrapper class test.

This commit is contained in:
Max Neunhoeffer 2014-07-24 23:41:44 +02:00
parent 6a1203405f
commit e6da8c63e2
1 changed files with 86 additions and 28 deletions

View File

@ -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--\\|/// @\\}\\)"