Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/miloyip/rapidjson.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPhilipp A. Hartmann <pah@qo.cx>2014-08-11 17:17:39 +0400
committerPhilipp A. Hartmann <pah@qo.cx>2014-08-11 19:14:31 +0400
commit8d53689432f85dc285602dce9e5d28f8ca5704b7 (patch)
treee6966cc71fced143a361934a38727645951eca78 /test
parent86245ce97a4ca0bf304e1c7bfcba7855ad014023 (diff)
(Pretty)Writer: drop restriction to object/array roots
Diffstat (limited to 'test')
-rw-r--r--test/unittest/writertest.cpp39
1 files changed, 37 insertions, 2 deletions
diff --git a/test/unittest/writertest.cpp b/test/unittest/writertest.cpp
index 2d83418e..9529ad94 100644
--- a/test/unittest/writertest.cpp
+++ b/test/unittest/writertest.cpp
@@ -155,12 +155,12 @@ TEST(Writer, OStreamWrapper) {
EXPECT_STREQ("{\"hello\":\"world\",\"t\":true,\"f\":false,\"n\":null,\"i\":123,\"pi\":3.1416,\"a\":[1,2,3]}", actual.c_str());
}
-TEST(Writer, AssertRootMustBeArrayOrObject) {
+TEST(Writer, AssertRootMayBeAnyValue) {
#define T(x)\
{\
StringBuffer buffer;\
Writer<StringBuffer> writer(buffer);\
- ASSERT_THROW(x, AssertException);\
+ EXPECT_TRUE(x);\
}
T(writer.Bool(false));
T(writer.Bool(true));
@@ -228,9 +228,23 @@ TEST(Writer, AssertObjectKeyNotString) {
TEST(Writer, AssertMultipleRoot) {
StringBuffer buffer;
Writer<StringBuffer> writer(buffer);
+
writer.StartObject();
writer.EndObject();
ASSERT_THROW(writer.StartObject(), AssertException);
+
+ writer.Reset(buffer);
+ writer.Null();
+ ASSERT_THROW(writer.Int(0), AssertException);
+
+ writer.Reset(buffer);
+ writer.String("foo");
+ ASSERT_THROW(writer.StartArray(), AssertException);
+
+ writer.Reset(buffer);
+ writer.StartArray();
+ writer.EndArray();
+ ASSERT_THROW(writer.Double(3.14), AssertException);
}
TEST(Writer, RootObjectIsComplete) {
@@ -260,3 +274,24 @@ TEST(Writer, RootArrayIsComplete) {
writer.EndArray();
EXPECT_TRUE(writer.IsComplete());
}
+
+TEST(Writer, RootValueIsComplete) {
+#define T(x)\
+ {\
+ StringBuffer buffer;\
+ Writer<StringBuffer> writer(buffer);\
+ EXPECT_FALSE(writer.IsComplete()); \
+ x; \
+ EXPECT_TRUE(writer.IsComplete()); \
+ }
+ T(writer.Null());
+ T(writer.Bool(true));
+ T(writer.Bool(false));
+ T(writer.Int(0));
+ T(writer.Uint(0));
+ T(writer.Int64(0));
+ T(writer.Uint64(0));
+ T(writer.Double(0));
+ T(writer.String(""));
+#undef T
+}