// // c_logger_test.cxx // logger_test // // Created by Sam Jaffe on 4/2/19. // #include "logger_test_obj.h" #include "logger/c_logger.h" using namespace logging; namespace { struct t_logger : public c_logger { t_logger(std::string const & name, std::shared_ptr impl) : c_logger(name, impl) {} }; } using CLoggerTest = LoggerTest; TEST_F(CLoggerTest, FlushesOnClose) { EXPECT_CALL(*appender, flush()).Times(1); t_logger("", pimpl); } TEST_F(CLoggerTest, FlushesOnFlushCall) { EXPECT_CALL(*appender, flush()).Times(2); t_logger("", pimpl).flush(); } TEST_F(CLoggerTest, LogsWithFmtCode) { using testing::_; EXPECT_CALL(*appender, write(MessageEq("5"), _)).Times(1); t_logger("", pimpl).errorf("%d", 5); } // TODO: This is wrong TEST_F(CLoggerTest, FmtLogHasNameInHeader) { using testing::_; using testing::Field; EXPECT_CALL(*appender, write(Field(&logpacket::logger, "TEST"), _)).Times(1); t_logger("TEST", pimpl).errorf("%d", 5); } // TODO: This is wrong TEST_F(CLoggerTest, FmtLogHasLevelInHeader) { using testing::_; using testing::Field; auto IsError = Field(&logpacket::level, level::error); EXPECT_CALL(*appender, write(IsError, _)).Times(1); t_logger("TEST", pimpl).errorf("%d", 5); } TEST_F(CLoggerTest, LogsRawData) { using testing::_; EXPECT_CALL(*appender, write(MessageEq("5"), _)).Times(1); t_logger("", pimpl).error("5"); } TEST_F(CLoggerTest, DoesNotLogAboveLevel) { using testing::_; pimpl->min_log_level = level::fatal; EXPECT_CALL(*appender, write(_, _)).Times(0); t_logger("", pimpl).errorf("%d", 5); } TEST_F(CLoggerTest, DoesNotRawLogAboveLevel) { using testing::_; pimpl->min_log_level = level::fatal; EXPECT_CALL(*appender, write(_, _)).Times(0); t_logger("", pimpl).error("5"); }