summaryrefslogtreecommitdiff
path: root/test/json.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/json.cc')
-rw-r--r--test/json.cc44
1 files changed, 44 insertions, 0 deletions
diff --git a/test/json.cc b/test/json.cc
index 2fc7ad2..81cf7d6 100644
--- a/test/json.cc
+++ b/test/json.cc
@@ -203,6 +203,20 @@ TEST_P(Writer, quote3) {
EXPECT_EQ(R"("\n")", str());
}
+TEST_P(Writer, quote4) {
+ auto writer = make();
+ writer->value("\r\n\t\b\f");
+
+ EXPECT_EQ(R"("\r\n\t\b\f")", str());
+}
+
+TEST_P(Writer, quote5) {
+ auto writer = make();
+ writer->value("\x0f");
+
+ EXPECT_EQ(R"("\u000f")", str());
+}
+
TEST_P(Writer, float) {
auto writer = make();
writer->value(3.14F);
@@ -217,5 +231,35 @@ TEST_P(Writer, double) {
EXPECT_EQ("3.14", str());
}
+TEST_P(Writer, uint64) {
+ auto writer = make();
+ writer->value(static_cast<uint64_t>(1000));
+
+ EXPECT_EQ("1000", str());
+}
+
+TEST_P(Writer, bool) {
+ auto writer = make();
+ writer->value(true);
+
+ EXPECT_EQ("true", str());
+}
+
+TEST_P(Writer, clear) {
+ auto writer = make();
+ writer->value(true);
+ writer->clear();
+ writer->value(false);
+
+ switch (GetParam()) {
+ case Output::String:
+ EXPECT_EQ("false", str());
+ break;
+ case Output::Stream:
+ EXPECT_EQ("truefalse", str());
+ break;
+ }
+}
+
INSTANTIATE_TEST_SUITE_P(AllOutputs, Writer,
testing::Values(Output::String, Output::Stream));