1
0
mirror of https://github.com/falk-werner/webfuse synced 2024-10-27 20:34:10 +00:00
falk-werner_webfuse/test/webfuse/json/test_node.cc

89 lines
3.1 KiB
C++
Raw Normal View History

2020-07-15 16:55:09 +00:00
#include "webfuse/impl/json/node.h"
#include "webfuse/test_util/json_doc.hpp"
#include <gtest/gtest.h>
using webfuse_test::JsonDoc;
TEST(json_node, null)
{
JsonDoc doc("null");
ASSERT_EQ(WF_JSON_TYPE_NULL, wf_impl_json_type(doc.root()));
ASSERT_TRUE(wf_impl_json_is_null(doc.root()));
2020-07-15 16:55:09 +00:00
}
TEST(json_node, true)
{
JsonDoc doc("true");
ASSERT_EQ(WF_JSON_TYPE_BOOL, wf_impl_json_type(doc.root()));
ASSERT_TRUE(wf_impl_json_is_bool(doc.root()));
2020-07-15 16:55:09 +00:00
ASSERT_TRUE(wf_impl_json_bool_get(doc.root()));
}
TEST(json_node, false)
{
JsonDoc doc("false");
ASSERT_EQ(WF_JSON_TYPE_BOOL, wf_impl_json_type(doc.root()));
ASSERT_TRUE(wf_impl_json_is_bool(doc.root()));
2020-07-15 16:55:09 +00:00
ASSERT_FALSE(wf_impl_json_bool_get(doc.root()));
}
TEST(json_node, int)
{
JsonDoc doc("42");
ASSERT_EQ(WF_JSON_TYPE_INT, wf_impl_json_type(doc.root()));
ASSERT_TRUE(wf_impl_json_is_int(doc.root()));
2020-07-15 16:55:09 +00:00
ASSERT_EQ(42, wf_impl_json_int_get(doc.root()));
}
TEST(json_node, string)
{
JsonDoc doc("\"brummni\"");
ASSERT_EQ(WF_JSON_TYPE_STRING, wf_impl_json_type(doc.root()));
ASSERT_TRUE(wf_impl_json_is_string(doc.root()));
2020-07-15 16:55:09 +00:00
ASSERT_STREQ("brummni", wf_impl_json_string_get(doc.root()));
}
TEST(json_node, array)
{
JsonDoc doc("[1,2,3]");
ASSERT_EQ(WF_JSON_TYPE_ARRAY, wf_impl_json_type(doc.root()));
ASSERT_TRUE(wf_impl_json_is_array(doc.root()));
2020-07-15 16:55:09 +00:00
ASSERT_EQ(3, wf_impl_json_array_size(doc.root()));
ASSERT_EQ(WF_JSON_TYPE_INT, wf_impl_json_type(wf_impl_json_array_get(doc.root(), 0)));
ASSERT_EQ(WF_JSON_TYPE_UNDEFINED, wf_impl_json_type(wf_impl_json_array_get(doc.root(), 4)));
}
TEST(json_node, object)
{
JsonDoc doc("{\"answer\": 42}");
ASSERT_EQ(WF_JSON_TYPE_OBJECT, wf_impl_json_type(doc.root()));
ASSERT_TRUE(wf_impl_json_is_object(doc.root()));
2020-07-15 16:55:09 +00:00
ASSERT_EQ(1, wf_impl_json_object_size(doc.root()));
ASSERT_EQ(WF_JSON_TYPE_INT, wf_impl_json_type(wf_impl_json_object_get(doc.root(), "answer")));
ASSERT_STREQ("answer", wf_impl_json_object_key(doc.root(), 0));
ASSERT_EQ(WF_JSON_TYPE_INT, wf_impl_json_type(wf_impl_json_object_value(doc.root(), 0)));
ASSERT_EQ(WF_JSON_TYPE_UNDEFINED, wf_impl_json_type(wf_impl_json_object_get(doc.root(), "unknown")));
ASSERT_STREQ("", wf_impl_json_object_key(doc.root(), 1));
ASSERT_EQ(WF_JSON_TYPE_UNDEFINED, wf_impl_json_type(wf_impl_json_object_value(doc.root(), 1)));
}
TEST(json_node, default_values)
{
JsonDoc doc("null");
ASSERT_EQ (false, wf_impl_json_bool_get(doc.root()));
ASSERT_EQ (0 , wf_impl_json_int_get(doc.root()));
ASSERT_STREQ("" , wf_impl_json_string_get(doc.root()));
ASSERT_EQ (0 , wf_impl_json_array_size(doc.root()));
ASSERT_EQ (WF_JSON_TYPE_UNDEFINED, wf_impl_json_type(wf_impl_json_array_get(doc.root(), 0)));
ASSERT_EQ (0 , wf_impl_json_object_size(doc.root()));
ASSERT_STREQ("" , wf_impl_json_object_key(doc.root(), 0));
ASSERT_EQ (WF_JSON_TYPE_UNDEFINED, wf_impl_json_type(wf_impl_json_object_get(doc.root(), 0)));
ASSERT_EQ (WF_JSON_TYPE_UNDEFINED, wf_impl_json_type(wf_impl_json_object_value(doc.root(), 0)));
}