// // logger_test.cxx // logger // // Created by Sam Jaffe on 3/31/19. // #include "logger_test_obj.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::_; EXPECT_CALL(*appender, write(MessageEq("5"), _)).Times(1); t_logger("", pimpl).log(level::error, "{}", 5); } TEST_F(LoggerTest, DoesNotLogAboveLevel) { using testing::_; pimpl->min_log_level = level::fatal; EXPECT_CALL(*appender, write(_, _)).Times(0); t_logger("", pimpl).log(level::error, "{}", 5); } TEST_F(LoggerTest, LogCurlyBraceLiteralByDoubling) { using testing::_; EXPECT_CALL(*appender, write(MessageEq("{}"), _)).Times(1); t_logger("", pimpl).log(level::error, "{{}}", 5); }