mirror of
https://github.com/falk-werner/webfuse-provider
synced 2024-10-27 20:44:10 +00:00
added unit test for json parser
This commit is contained in:
parent
fd70fa73ac
commit
fe32a31e09
@ -16,6 +16,11 @@ wfp_impl_json_parse_value(
|
||||
struct wfp_json_reader * reader,
|
||||
struct wfp_json * json);
|
||||
|
||||
static bool
|
||||
wfp_impl_json_parse_null(
|
||||
struct wfp_json_reader * reader,
|
||||
struct wfp_json * json);
|
||||
|
||||
static bool
|
||||
wfp_impl_json_parse_true(
|
||||
struct wfp_json_reader * reader,
|
||||
@ -92,6 +97,8 @@ wfp_impl_json_parse_value(
|
||||
|
||||
switch (c)
|
||||
{
|
||||
case 'n':
|
||||
return wfp_impl_json_parse_null(reader, json);
|
||||
case 't':
|
||||
return wfp_impl_json_parse_true(reader, json);
|
||||
case 'f':
|
||||
@ -116,6 +123,20 @@ wfp_impl_json_parse_value(
|
||||
}
|
||||
}
|
||||
|
||||
static bool
|
||||
wfp_impl_json_parse_null(
|
||||
struct wfp_json_reader * reader,
|
||||
struct wfp_json * json)
|
||||
{
|
||||
bool const result = wfp_impl_json_reader_read_const(reader, "ull", 3);
|
||||
if (result)
|
||||
{
|
||||
json->type = WFP_JSON_NULL;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static bool
|
||||
wfp_impl_json_parse_true(
|
||||
struct wfp_json_reader * reader,
|
||||
|
@ -11,6 +11,17 @@ namespace
|
||||
}
|
||||
}
|
||||
|
||||
TEST(json_parser, parse_null)
|
||||
{
|
||||
char text[] = "null";
|
||||
wfp_json_doc * doc = parse_json(text);
|
||||
ASSERT_NE(nullptr, doc);
|
||||
wfp_json const * root = wfp_impl_json_doc_root(doc);
|
||||
ASSERT_TRUE(wfp_impl_json_is_null(root));
|
||||
|
||||
wfp_impl_json_doc_dispose(doc);
|
||||
}
|
||||
|
||||
TEST(json_parser, parse_true)
|
||||
{
|
||||
char text[] = "true";
|
||||
@ -107,7 +118,19 @@ TEST(json_parser, parse_object)
|
||||
TEST(json_parser, parse_fail_invalid_json)
|
||||
{
|
||||
{
|
||||
char text[] = "True";
|
||||
char text[] = "invalid";
|
||||
wfp_json_doc * doc = parse_json(text);
|
||||
ASSERT_EQ(nullptr, doc);
|
||||
}
|
||||
|
||||
{
|
||||
char text[] = "nul";
|
||||
wfp_json_doc * doc = parse_json(text);
|
||||
ASSERT_EQ(nullptr, doc);
|
||||
}
|
||||
|
||||
{
|
||||
char text[] = "tru";
|
||||
wfp_json_doc * doc = parse_json(text);
|
||||
ASSERT_EQ(nullptr, doc);
|
||||
}
|
||||
@ -124,6 +147,24 @@ TEST(json_parser, parse_fail_invalid_json)
|
||||
ASSERT_EQ(nullptr, doc);
|
||||
}
|
||||
|
||||
{
|
||||
char text[] = "[1 2 3]";
|
||||
wfp_json_doc * doc = parse_json(text);
|
||||
ASSERT_EQ(nullptr, doc);
|
||||
}
|
||||
|
||||
{
|
||||
char text[] = "[1,2,3";
|
||||
wfp_json_doc * doc = parse_json(text);
|
||||
ASSERT_EQ(nullptr, doc);
|
||||
}
|
||||
|
||||
{
|
||||
char text[] = "[1,2,]";
|
||||
wfp_json_doc * doc = parse_json(text);
|
||||
ASSERT_EQ(nullptr, doc);
|
||||
}
|
||||
|
||||
{
|
||||
char text[] = "{\"method\":\"add\",\"params\":[1,2],\"id\":42";
|
||||
wfp_json_doc * doc = parse_json(text);
|
||||
@ -136,4 +177,34 @@ TEST(json_parser, parse_fail_invalid_json)
|
||||
ASSERT_EQ(nullptr, doc);
|
||||
}
|
||||
|
||||
{
|
||||
char text[] = "{\"key\" \"value\"}";
|
||||
wfp_json_doc * doc = parse_json(text);
|
||||
ASSERT_EQ(nullptr, doc);
|
||||
}
|
||||
|
||||
{
|
||||
char text[] = "{\"key\": }";
|
||||
wfp_json_doc * doc = parse_json(text);
|
||||
ASSERT_EQ(nullptr, doc);
|
||||
}
|
||||
|
||||
{
|
||||
char text[] = "{\"key\": \"value\"";
|
||||
wfp_json_doc * doc = parse_json(text);
|
||||
ASSERT_EQ(nullptr, doc);
|
||||
}
|
||||
|
||||
{
|
||||
char text[] = "{\"key\" \"value\"]";
|
||||
wfp_json_doc * doc = parse_json(text);
|
||||
ASSERT_EQ(nullptr, doc);
|
||||
}
|
||||
|
||||
{
|
||||
char text[] = "{\"key\": \"value\", }";
|
||||
wfp_json_doc * doc = parse_json(text);
|
||||
ASSERT_EQ(nullptr, doc);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user