testing the parser

This commit is contained in:
Niels 2015-02-10 20:52:39 +01:00
parent 3589837071
commit 963ec13b4a
3 changed files with 85 additions and 32 deletions

View file

@ -3940,36 +3940,59 @@ TEST_CASE("convenience functions")
CHECK(json::escape_string("\r") == "\\r");
CHECK(json::escape_string("\t") == "\\t");
CHECK(json::escape_string( "\x01" ) == "\\u0001");
CHECK(json::escape_string( "\x02" ) == "\\u0002");
CHECK(json::escape_string( "\x03" ) == "\\u0003");
CHECK(json::escape_string( "\x04" ) == "\\u0004");
CHECK(json::escape_string( "\x05" ) == "\\u0005");
CHECK(json::escape_string( "\x06" ) == "\\u0006");
CHECK(json::escape_string( "\x07" ) == "\\u0007");
CHECK(json::escape_string( "\x08" ) == "\\b");
CHECK(json::escape_string( "\x09" ) == "\\t");
CHECK(json::escape_string( "\x0a" ) == "\\n");
CHECK(json::escape_string( "\x0b" ) == "\\u000b");
CHECK(json::escape_string( "\x0c" ) == "\\f");
CHECK(json::escape_string( "\x0d" ) == "\\r");
CHECK(json::escape_string( "\x0e" ) == "\\u000e");
CHECK(json::escape_string( "\x0f" ) == "\\u000f");
CHECK(json::escape_string( "\x10" ) == "\\u0010");
CHECK(json::escape_string( "\x11" ) == "\\u0011");
CHECK(json::escape_string( "\x12" ) == "\\u0012");
CHECK(json::escape_string( "\x13" ) == "\\u0013");
CHECK(json::escape_string( "\x14" ) == "\\u0014");
CHECK(json::escape_string( "\x15" ) == "\\u0015");
CHECK(json::escape_string( "\x16" ) == "\\u0016");
CHECK(json::escape_string( "\x17" ) == "\\u0017");
CHECK(json::escape_string( "\x18" ) == "\\u0018");
CHECK(json::escape_string( "\x19" ) == "\\u0019");
CHECK(json::escape_string( "\x1a" ) == "\\u001a");
CHECK(json::escape_string( "\x1b" ) == "\\u001b");
CHECK(json::escape_string( "\x1c" ) == "\\u001c");
CHECK(json::escape_string( "\x1d" ) == "\\u001d");
CHECK(json::escape_string( "\x1e" ) == "\\u001e");
CHECK(json::escape_string( "\x1f" ) == "\\u001f");
CHECK(json::escape_string("\x01") == "\\u0001");
CHECK(json::escape_string("\x02") == "\\u0002");
CHECK(json::escape_string("\x03") == "\\u0003");
CHECK(json::escape_string("\x04") == "\\u0004");
CHECK(json::escape_string("\x05") == "\\u0005");
CHECK(json::escape_string("\x06") == "\\u0006");
CHECK(json::escape_string("\x07") == "\\u0007");
CHECK(json::escape_string("\x08") == "\\b");
CHECK(json::escape_string("\x09") == "\\t");
CHECK(json::escape_string("\x0a") == "\\n");
CHECK(json::escape_string("\x0b") == "\\u000b");
CHECK(json::escape_string("\x0c") == "\\f");
CHECK(json::escape_string("\x0d") == "\\r");
CHECK(json::escape_string("\x0e") == "\\u000e");
CHECK(json::escape_string("\x0f") == "\\u000f");
CHECK(json::escape_string("\x10") == "\\u0010");
CHECK(json::escape_string("\x11") == "\\u0011");
CHECK(json::escape_string("\x12") == "\\u0012");
CHECK(json::escape_string("\x13") == "\\u0013");
CHECK(json::escape_string("\x14") == "\\u0014");
CHECK(json::escape_string("\x15") == "\\u0015");
CHECK(json::escape_string("\x16") == "\\u0016");
CHECK(json::escape_string("\x17") == "\\u0017");
CHECK(json::escape_string("\x18") == "\\u0018");
CHECK(json::escape_string("\x19") == "\\u0019");
CHECK(json::escape_string("\x1a") == "\\u001a");
CHECK(json::escape_string("\x1b") == "\\u001b");
CHECK(json::escape_string("\x1c") == "\\u001c");
CHECK(json::escape_string("\x1d") == "\\u001d");
CHECK(json::escape_string("\x1e") == "\\u001e");
CHECK(json::escape_string("\x1f") == "\\u001f");
}
}
TEST_CASE("parser class")
{
SECTION("get_token")
{
SECTION("structural characters")
{
CHECK(json::parser("[").last_token == json::parser::token_type::begin_array);
CHECK(json::parser("]").last_token == json::parser::token_type::end_array);
CHECK(json::parser("{").last_token == json::parser::token_type::begin_object);
CHECK(json::parser("}").last_token == json::parser::token_type::end_object);
CHECK(json::parser(",").last_token == json::parser::token_type::value_separator);
CHECK(json::parser(":").last_token == json::parser::token_type::name_separator);
}
SECTION("literal names")
{
CHECK(json::parser("null").last_token == json::parser::token_type::literal_null);
CHECK(json::parser("true").last_token == json::parser::token_type::literal_true);
CHECK(json::parser("false").last_token == json::parser::token_type::literal_false);
}
}
}