From 860757ea4c40ea961fae47e119ccee958cb3af61 Mon Sep 17 00:00:00 2001 From: Falk Werner Date: Wed, 15 Jul 2020 23:01:08 +0200 Subject: [PATCH] added test of json writer --- test/webfuse/json/test_writer.cc | 56 +++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/test/webfuse/json/test_writer.cc b/test/webfuse/json/test_writer.cc index 60a85f1..6575460 100644 --- a/test/webfuse/json/test_writer.cc +++ b/test/webfuse/json/test_writer.cc @@ -212,4 +212,58 @@ TEST(json_writer, reset) wf_impl_json_write_int(writer,42); ASSERT_EQ("42", writer.take()); -} \ No newline at end of file +} + +TEST(json_writer, write_object_null) +{ + writer writer; + wf_impl_json_write_object_begin(writer); + wf_impl_json_write_object_null(writer, "error"); + wf_impl_json_write_object_end(writer); + + ASSERT_EQ("{\"error\":null}", writer.take()); +} + +TEST(json_writer, write_object_bool) +{ + writer writer; + wf_impl_json_write_object_begin(writer); + wf_impl_json_write_object_bool(writer, "result", true); + wf_impl_json_write_object_end(writer); + + ASSERT_EQ("{\"result\":true}", writer.take()); +} + +TEST(json_writer, write_object_string_nocheck) +{ + writer writer; + wf_impl_json_write_object_begin(writer); + wf_impl_json_write_object_string(writer, "result", "Hello,\tWorld!"); + wf_impl_json_write_object_end(writer); + + ASSERT_EQ("{\"result\": \"Hello,\tWorld!\"}", writer.take()); +} + +TEST(json_writer, write_object_bytes) +{ + writer writer; + wf_impl_json_write_object_begin(writer); + wf_impl_json_write_object_bytes(writer, "result", "\0\0", 2); + wf_impl_json_write_object_end(writer); + + ASSERT_EQ("{\"result\": \"AAA\"}", writer.take()); +} + +TEST(json_writer, realloc_buffer) +{ + writer writer(1); + wf_impl_json_write_string(writer, "very large contents"); + + ASSERT_EQ("very large contents", writer.take()); +} + +TEST(json_writer, unexpected_end) +{ + writer writer; + wf_impl_json_write_array_end(writer); +}