#include "gtest/gtest.h" #include "common/Formatter.h" #include #include using namespace ceph; TEST(xmlformatter, oneline) { std::stringstream sout; XMLFormatter formatter; formatter.dump_int("integer", 10); formatter.dump_float("float", 10.0); formatter.dump_string("string", "string"); formatter.flush(sout); std::string cmp = "1010string"; EXPECT_EQ(cmp, sout.str()); } TEST(xmlformatter, multiline) { std::stringstream sout; XMLFormatter formatter; formatter.dump_int("integer", 10); formatter.dump_float("float", 10.0); formatter.dump_string("string", "string"); formatter.dump_int("integer", 20); formatter.dump_float("float", 20.0); formatter.dump_string("string", "string"); std::string cmp = "" "1010string" "2020string"; formatter.flush(sout); EXPECT_EQ(cmp, sout.str()); } TEST(xmlformatter, multiflush) { std::stringstream sout1; std::stringstream sout2; XMLFormatter formatter; formatter.dump_int("integer", 10); formatter.dump_float("float", 10.0); formatter.dump_string("string", "string"); formatter.flush(sout1); std::string cmp = "" "10" "10" "string"; EXPECT_EQ(cmp, sout1.str()); formatter.dump_int("integer", 20); formatter.dump_float("float", 20.0); formatter.dump_string("string", "string"); formatter.flush(sout2); cmp = "" "20" "20" "string"; EXPECT_EQ(cmp, sout2.str()); } TEST(xmlformatter, pretty) { std::stringstream sout; XMLFormatter formatter( true, // pretty false, // lowercased false); // underscored formatter.open_object_section("xml"); formatter.dump_int("Integer", 10); formatter.dump_float("Float", 10.0); formatter.dump_string("String", "String"); formatter.close_section(); formatter.flush(sout); std::string cmp = "" "\n" " 10\n" " 10\n" " String\n" "\n\n"; EXPECT_EQ(cmp, sout.str()); } TEST(xmlformatter, lowercased) { std::stringstream sout; XMLFormatter formatter( false, // pretty true, // lowercased false); // underscored formatter.dump_int("Integer", 10); formatter.dump_float("Float", 10.0); formatter.dump_string("String", "String"); formatter.flush(sout); std::string cmp = "" "10" "10" "String"; EXPECT_EQ(cmp, sout.str()); } TEST(xmlformatter, underscored) { std::stringstream sout; XMLFormatter formatter( false, // pretty false, // lowercased true); // underscored formatter.dump_int("Integer Item", 10); formatter.dump_float("Float Item", 10.0); formatter.dump_string("String Item", "String"); formatter.flush(sout); std::string cmp = "" "10" "10" "String"; EXPECT_EQ(cmp, sout.str()); } TEST(xmlformatter, lowercased_underscored) { std::stringstream sout; XMLFormatter formatter( false, // pretty true, // lowercased true); // underscored formatter.dump_int("Integer Item", 10); formatter.dump_float("Float Item", 10.0); formatter.dump_string("String Item", "String"); formatter.flush(sout); std::string cmp = "" "10" "10" "String"; EXPECT_EQ(cmp, sout.str()); } TEST(xmlformatter, pretty_lowercased_underscored) { std::stringstream sout; XMLFormatter formatter( true, // pretty true, // lowercased true); // underscored formatter.dump_int("Integer Item", 10); formatter.dump_float("Float Item", 10.0); formatter.dump_string("String Item", "String"); formatter.flush(sout); std::string cmp = "" "10\n" "10\n" "String\n\n"; EXPECT_EQ(cmp, sout.str()); }