| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- //
- // json_binder_discard_test.cpp
- // json-direct-test
- //
- // Created by Sam Jaffe on 11/17/18.
- // Copyright © 2018 Sam Jaffe. All rights reserved.
- //
- #include "json/json_binder.hpp"
- #include <gmock/gmock.h>
- using namespace json::binder;
- using namespace json::parser;
- TEST(JsonBinderDiscardTest, ParsesLargeNumberSuccessfully) {
- char data[] = R"(10000000000)";
- char const * ptr = data;
- EXPECT_NO_THROW(json::parse_discard_token(ptr));
- EXPECT_THAT(ptr, data + strlen(data));
- EXPECT_THAT(*ptr, '\0');
- }
- TEST(JsonBinderDiscardTest, ParsesObjectSuccessfully) {
- char data[] = R"({"key": "value"})";
- char const * ptr = data;
- EXPECT_NO_THROW(json::parse_discard_token(ptr));
- EXPECT_THAT(ptr, data + strlen(data));
- EXPECT_THAT(*ptr, '\0');
- }
- TEST(JsonBinderDiscardTest, ParsesArraySuccessfully) {
- char data[] = R"([ 1.0 ])";
- char const * ptr = data;
- EXPECT_NO_THROW(json::parse_discard_token(ptr));
- EXPECT_THAT(ptr, data + strlen(data));
- EXPECT_THAT(*ptr, '\0');
- }
- TEST(JsonBinderDiscardTest, ParsesNullSuccessfully) {
- char data[] = R"(null)";
- char const * ptr = data;
- EXPECT_NO_THROW(json::parse_discard_token(ptr));
- EXPECT_THAT(ptr, data + strlen(data));
- EXPECT_THAT(*ptr, '\0');
- }
- TEST(JsonBinderDiscardTest, ThrowsOnMissingValueForKey) {
- char data[] = R"({"key": })";
- char const * ptr = data;
- EXPECT_THROW(json::parse_discard_token(ptr),
- json::malformed_json_exception);
- }
- TEST(JsonBinderDiscardTest, ThrowsOnMissingAssoc) {
- char data[] = R"({"key"="value"})";
- char const * ptr = data;
- EXPECT_THROW(json::parse_discard_token(ptr),
- json::malformed_json_exception);
- }
- TEST(JsonBinderDiscardTest, ThrowsOnMissingArrayEndToken) {
- char data[] = R"([1.0 )";
- char const * ptr = data;
- EXPECT_THROW(json::parse_discard_token(ptr),
- json::unterminated_json_exception);
- }
- TEST(JsonBinderDiscardTest, ThrowsOnMissingObjectEndToken) {
- char data[] = R"({"key": "value")";
- char const * ptr = data;
- EXPECT_THROW(json::parse_discard_token(ptr),
- json::unterminated_json_exception);
- }
|