// // json_binder_test_bool.t.h // json // // Created by Sam Jaffe on 2/27/17. // #include "json/json_binder.hpp" #include using namespace json::binder; using namespace json::parser; using namespace ::testing; TEST(JsonBinderBoolTest, ParsesTrue) { char data[] = "true"; bool out = false; value_binder binder{}; parse(bind(out, binder), data, allow_all); EXPECT_THAT(out, true); } TEST(JsonBinderBoolTest, ParsesFalse) { char data[] = "false"; bool out = true; value_binder binder{}; parse(bind(out, binder), data, allow_all); EXPECT_THAT(out, false); } TEST(JsonBinderBoolTest, ThrowsOnBadData) { char data[] = "YES"; // Obj-C bool out = false; value_binder binder{}; EXPECT_THROW(parse(bind(out, binder), data, allow_all), json::malformed_json_exception); } TEST(JsonBinderBoolTest, WritesTrue) { std::string const expected = "true"; std::stringstream ss; bool const in = true; value_binder binder{}; write(bind(in, binder), ss); EXPECT_THAT(ss.str(), expected); } TEST(JsonBinderBoolTest, WritesFalse) { std::string const expected = "false"; std::stringstream ss; bool const in = false; value_binder binder{}; write(bind(in, binder), ss); EXPECT_THAT(ss.str(), expected); }