TEST_F(DistributedTests, test_serialize_distributed_query_request) { DistributedQueryRequest r; r.query = "foo"; r.id = "bar"; pt::ptree tree; auto s = serializeDistributedQueryRequest(r, tree); EXPECT_TRUE(s.ok()); EXPECT_EQ(tree.get<std::string>("query"), "foo"); EXPECT_EQ(tree.get<std::string>("id"), "bar"); }
Status serializeDistributedQueryRequestJSON(const DistributedQueryRequest& r, std::string& json) { pt::ptree tree; auto s = serializeDistributedQueryRequest(r, tree); if (!s.ok()) { return s; } std::stringstream ss; try { pt::write_json(ss, tree, false); } catch (const pt::ptree_error& e) { return Status(1, "Error serializing JSON: " + std::string(e.what())); } json = ss.str(); return Status(0, "OK"); }
TEST_F(DistributedTests, test_serialize_distributed_query_request) { DistributedQueryRequest r; r.query = "foo"; r.id = "bar"; auto doc = JSON::newObject(); auto s = serializeDistributedQueryRequest(r, doc, doc.doc()); EXPECT_TRUE(s.ok()); EXPECT_TRUE(doc.doc().HasMember("query") && doc.doc()["query"].IsString()); EXPECT_TRUE(doc.doc().HasMember("id") && doc.doc()["id"].IsString()); if (doc.doc().HasMember("query")) { EXPECT_EQ(std::string(doc.doc()["query"].GetString()), "foo"); } if (doc.doc().HasMember("id")) { EXPECT_EQ(std::string(doc.doc()["id"].GetString()), "bar"); } }
Status serializeDistributedQueryResult(const DistributedQueryResult& r, pt::ptree& tree) { pt::ptree request; auto s = serializeDistributedQueryRequest(r.request, request); if (!s.ok()) { return s; } pt::ptree results; s = serializeQueryData(r.results, r.columns, results); if (!s.ok()) { return s; } tree.add_child("request", request); tree.add_child("results", results); return Status(0, "OK"); }