| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- //
- // json_binder_test_terminate.t.h
- // json
- //
- // Created by Sam Jaffe on 2/26/17.
- //
- #include <gmock/gmock.h>
- #include "json/json_binder.hpp"
- using namespace json::binder;
- using namespace json::parser;
- TEST(JsonBinderEndOfStreamTest, WhitespaceDelimitsTokens) {
- char data[] = "10 0";
- int out = 0;
- value_binder<int> binder{};
- EXPECT_NO_THROW(parse(bind(out, binder), data, allow_all));
- EXPECT_THAT(out, 10);
- }
- TEST(JsonBinderEndOfStreamTest, ExpectsEoBToOccurAfterAllParsed) {
- char data[] = "10 0";
- int out = 0;
- value_binder<int> binder{};
- EXPECT_THROW(parse(bind(out, binder), data,
- disable_concatenated_json_bodies),
- json::malformed_json_exception);
- }
- TEST(JsonBinderEndOfStreamTest, QuotationFormsEndOfStringToken) {
- char data[] = "\"This is a \"string";
- std::string out = "";
- value_binder<std::string> binder{};
- EXPECT_NO_THROW(parse(json::binder::bind(out, binder), data, allow_all));
- EXPECT_THAT(out, "This is a ");
- }
- TEST(JsonBinderEndOfStreamTest, ExpectsEoBToOccurAfterAllParsedString) {
- char data[] = "\"This is a \"string";
- std::string out = "";
- value_binder<std::string> binder{};
- EXPECT_THROW(parse(json::binder::bind(out, binder), data,
- disable_concatenated_json_bodies),
- json::malformed_json_exception);
- }
- TEST(JsonBinderEndOfStreamTest, WhitespaceCountsAsSuccessfulEoB) {
- char data[] = "\"This is a \" ";
- std::string out = "";
- value_binder<std::string> binder{};
- EXPECT_NO_THROW(parse(json::binder::bind(out, binder), data,
- disable_concatenated_json_bodies));
- }
- TEST(JsonBinderEndOfStreamTest, NoAmountOfWhitespaceHidesConcatToken) {
- char data[] = "\"This is a \" string";
- std::string out = "";
- value_binder<std::string> binder{};
- EXPECT_THROW(parse(json::binder::bind(out, binder), data,
- disable_concatenated_json_bodies),
- json::malformed_json_exception);
- }
|