// // logger_test.cxx // logger // // Created by Sam Jaffe on 3/31/19. // #include "mock_logger.h" #include "logger/logger.h" using namespace logging; namespace { struct t_logger : public logger { t_logger(std::string const & name, std::shared_ptr impl) : logger(name, impl) {} }; } TEST_F(LoggerTest, FlushesOnClose) { EXPECT_CALL(*appender, flush()).Times(1); t_logger("", pimpl); } TEST_F(LoggerTest, FlushesOnFlushCall) { EXPECT_CALL(*appender, flush()).Times(2); t_logger("", pimpl).flush(); } TEST_F(LoggerTest, LogsWithBraceFmtCode) { using testing::Field; EXPECT_CALL(*layout, format(Field(&logpacket::message, "5"))).Times(1); t_logger("", pimpl).log(LERROR, "{}", 5); } TEST_F(LoggerTest, DoesNotLogAboveLevel) { using testing::_; pimpl->min_log_level_ = LFATAL; EXPECT_CALL(*appender, write(_)).Times(0); t_logger("", pimpl).log(LERROR, "{}", 5); } TEST_F(LoggerTest, LogCurlyBraceLiteralByDoubling) { using testing::Field; EXPECT_CALL(*layout, format(Field(&logpacket::message, "{}"))).Times(1); t_logger("", pimpl).log(LERROR, "{{}}", 5); }