// // logger_test.cxx // logger // // Created by Sam Jaffe on 3/31/19. // #include #include "logger/logger.h" struct MockLoggerImpl : public logging::logger_impl { MockLoggerImpl() { min_log_level = logging::LTRACE; } MOCK_METHOD0(flush, void()); MOCK_METHOD1(write, void(logging::logpacket const &)); }; struct LoggerTest : public testing::Test { void SetUp() override; void TearDown() override; std::shared_ptr pimpl; }; using namespace logging; using namespace testing; struct t_logger : public logger { t_logger(std::string const & name, std::shared_ptr impl) : logger(name, impl) {} }; void LoggerTest::SetUp() { pimpl.reset(new MockLoggerImpl); EXPECT_CALL(*pimpl, flush()).Times(AnyNumber()); } void LoggerTest::TearDown() { pimpl.reset(); } TEST_F(LoggerTest, LogsWithBraceFmtCode) { using testing::Field; EXPECT_CALL(*pimpl, write(Field(&logpacket::message, "5"))).Times(1); logger LOG = t_logger("", pimpl); LOG.log(LERROR, "{}", 5); }