]> git.proxmox.com Git - ceph.git/blob - ceph/src/test/common/test_xmlformatter.cc
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / test / common / test_xmlformatter.cc
1 #include "gtest/gtest.h"
2
3 #include "common/Formatter.h"
4 #include <sstream>
5 #include <string>
6
7 using namespace ceph;
8
9
10 TEST(xmlformatter, oneline)
11 {
12
13 std::stringstream sout;
14 XMLFormatter formatter;
15 formatter.dump_int("integer", 10);
16 formatter.dump_float("float", 10.0);
17 formatter.dump_string("string", "string");
18 formatter.flush(sout);
19 std::string cmp = "<integer>10</integer><float>10</float><string>string</string>";
20 EXPECT_EQ(cmp, sout.str());
21 }
22
23 TEST(xmlformatter, multiline)
24 {
25 std::stringstream sout;
26 XMLFormatter formatter;
27 formatter.dump_int("integer", 10);
28 formatter.dump_float("float", 10.0);
29 formatter.dump_string("string", "string");
30 formatter.dump_int("integer", 20);
31 formatter.dump_float("float", 20.0);
32 formatter.dump_string("string", "string");
33
34 std::string cmp = ""
35 "<integer>10</integer><float>10</float><string>string</string>"
36 "<integer>20</integer><float>20</float><string>string</string>";
37
38 formatter.flush(sout);
39 EXPECT_EQ(cmp, sout.str());
40 }
41
42 TEST(xmlformatter, multiflush)
43 {
44 std::stringstream sout1;
45 std::stringstream sout2;
46 XMLFormatter formatter;
47 formatter.dump_int("integer", 10);
48 formatter.dump_float("float", 10.0);
49 formatter.dump_string("string", "string");
50 formatter.flush(sout1);
51
52 std::string cmp = ""
53 "<integer>10</integer>"
54 "<float>10</float>"
55 "<string>string</string>";
56
57 EXPECT_EQ(cmp, sout1.str());
58
59 formatter.dump_int("integer", 20);
60 formatter.dump_float("float", 20.0);
61 formatter.dump_string("string", "string");
62 formatter.flush(sout2);
63
64 cmp = ""
65 "<integer>20</integer>"
66 "<float>20</float>"
67 "<string>string</string>";
68
69 EXPECT_EQ(cmp, sout2.str());
70 }
71
72 TEST(xmlformatter, pretty)
73 {
74 std::stringstream sout;
75 XMLFormatter formatter(
76 true, // pretty
77 false, // lowercased
78 false); // underscored
79 formatter.open_object_section("xml");
80 formatter.dump_int("Integer", 10);
81 formatter.dump_float("Float", 10.0);
82 formatter.dump_string("String", "String");
83 formatter.close_section();
84 formatter.flush(sout);
85 std::string cmp = ""
86 "<xml>\n"
87 " <Integer>10</Integer>\n"
88 " <Float>10</Float>\n"
89 " <String>String</String>\n"
90 "</xml>\n\n";
91 EXPECT_EQ(cmp, sout.str());
92 }
93
94 TEST(xmlformatter, lowercased)
95 {
96 std::stringstream sout;
97 XMLFormatter formatter(
98 false, // pretty
99 true, // lowercased
100 false); // underscored
101 formatter.dump_int("Integer", 10);
102 formatter.dump_float("Float", 10.0);
103 formatter.dump_string("String", "String");
104 formatter.flush(sout);
105 std::string cmp = ""
106 "<integer>10</integer>"
107 "<float>10</float>"
108 "<string>String</string>";
109 EXPECT_EQ(cmp, sout.str());
110 }
111
112 TEST(xmlformatter, underscored)
113 {
114 std::stringstream sout;
115 XMLFormatter formatter(
116 false, // pretty
117 false, // lowercased
118 true); // underscored
119 formatter.dump_int("Integer Item", 10);
120 formatter.dump_float("Float Item", 10.0);
121 formatter.dump_string("String Item", "String");
122 formatter.flush(sout);
123 std::string cmp = ""
124 "<Integer_Item>10</Integer_Item>"
125 "<Float_Item>10</Float_Item>"
126 "<String_Item>String</String_Item>";
127
128 EXPECT_EQ(cmp, sout.str());
129 }
130
131 TEST(xmlformatter, lowercased_underscored)
132 {
133 std::stringstream sout;
134 XMLFormatter formatter(
135 false, // pretty
136 true, // lowercased
137 true); // underscored
138 formatter.dump_int("Integer Item", 10);
139 formatter.dump_float("Float Item", 10.0);
140 formatter.dump_string("String Item", "String");
141 formatter.flush(sout);
142 std::string cmp = ""
143 "<integer_item>10</integer_item>"
144 "<float_item>10</float_item>"
145 "<string_item>String</string_item>";
146 EXPECT_EQ(cmp, sout.str());
147 }
148
149 TEST(xmlformatter, pretty_lowercased_underscored)
150 {
151 std::stringstream sout;
152 XMLFormatter formatter(
153 true, // pretty
154 true, // lowercased
155 true); // underscored
156 formatter.dump_int("Integer Item", 10);
157 formatter.dump_float("Float Item", 10.0);
158 formatter.dump_string("String Item", "String");
159 formatter.flush(sout);
160 std::string cmp = ""
161 "<integer_item>10</integer_item>\n"
162 "<float_item>10</float_item>\n"
163 "<string_item>String</string_item>\n\n";
164 EXPECT_EQ(cmp, sout.str());
165 }