// // serial_test.cxx // engine-test // // Created by Sam Jaffe on 6/2/19. // Copyright © 2019 Sam Jaffe. All rights reserved. // #include #include "mock_renderer.h" #include #include #include #include "game/engine/serial.hpp" Json::Value to_json(std::string const & str) { Json::Value json; std::stringstream(str) >> json; return json; } struct SerialTest : testing::Test {}; using testing::Eq; TEST_F(SerialTest, ReadsIntegerVector) { math::vec2i const expected{{1, 5}}; std::string const data = "[1,5]"; EXPECT_THAT(engine::to_vec2i(to_json(data)), Eq(expected)); } TEST_F(SerialTest, ReadsIntegerVectorFromFloats) { math::vec2i const expected{{1, 5}}; std::string const data = "[1.5,5.01]"; EXPECT_THAT(engine::to_vec2i(to_json(data)), Eq(expected)); } TEST_F(SerialTest, ReadsFloatVector) { math::vec2 const expected{{1.5, 5.01}}; std::string const data = "[1.5,5.01]"; EXPECT_THAT(engine::to_vec2(to_json(data)), Eq(expected)); } TEST_F(SerialTest, ReadsFloatVectorFromInts) { math::vec2 const expected{{1, 5}}; std::string const data = "[1,5]"; EXPECT_THAT(engine::to_vec2(to_json(data)), Eq(expected)); } TEST_F(SerialTest, MissingFloatDataIsZero) { math::vec2 const expected{{1, 0}}; std::string const data = "[1]"; EXPECT_THAT(engine::to_vec2(to_json(data)), Eq(expected)); } TEST_F(SerialTest, FallbackReaderDoesntInvokeIfArray) { math::vec2 const expected{{0, 0}}; std::string const data = "[]"; EXPECT_THAT(engine::to_vec2(to_json(data), {{1, 5}}), Eq(expected)); } TEST_F(SerialTest, FallbackReaderActivatesOnNull) { math::vec2 const expected{{1, 5}}; std::string const data = "null"; EXPECT_THAT(engine::to_vec2(to_json(data), {{1, 5}}), Eq(expected)); }