| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- //
- // json_binder_test_terminate.t.h
- // json
- //
- // Created by Sam Jaffe on 2/26/17.
- //
- #include "json/json_binder.hpp"
- #include <gmock/gmock.h>
- 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);
- }
|