// // mock_logger.h // logger_test // // Created by Sam Jaffe on 4/2/19. // #ifndef mock_logger_h #define mock_logger_h #include #include "logger/logger_impl.h" namespace logging { inline void PrintTo(location_info const & info, std::ostream * os) { if (info.line) { (*os) << "{\"" << info.filename << "\", \"" << info.function << "\", " << info.line << "}"; } else { (*os) << "NULL"; } } inline void PrintTo(logpacket const & pkt, std::ostream * os) { (*os) << "{ " << pkt.level << ", "; PrintTo(pkt.info, os); (*os) << ", \"" << pkt.logger << "\", \"" << pkt.message << "\" }"; } } struct MockLoggerImpl : public logging::logger_impl { MockLoggerImpl() { SetLogLevel(logging::LTRACE); } void SetLogLevel(logging::log_level ll) { min_log_level = ll; } MOCK_METHOD0(flush, void()); MOCK_METHOD1(write, void(logging::logpacket const &)); }; struct LoggerTest : public testing::Test { void SetUp() override { pimpl.reset(new MockLoggerImpl); using testing::AnyNumber; EXPECT_CALL(*pimpl, flush()).Times(AnyNumber()); } void TearDown() override { pimpl.reset(); } std::shared_ptr pimpl; }; #endif /* mock_logger_h */