logger_test.cxx 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. //
  2. // logger_test.cxx
  3. // logger
  4. //
  5. // Created by Sam Jaffe on 3/31/19.
  6. //
  7. #include <gmock/gmock.h>
  8. #include "logger/logger.h"
  9. struct MockLoggerImpl : public logging::logger_impl {
  10. MockLoggerImpl() {
  11. min_log_level = logging::LTRACE;
  12. }
  13. MOCK_METHOD0(flush, void());
  14. MOCK_METHOD1(write, void(logging::logpacket const &));
  15. };
  16. struct LoggerTest : public testing::Test {
  17. void SetUp() override;
  18. void TearDown() override;
  19. std::shared_ptr<MockLoggerImpl> pimpl;
  20. };
  21. using namespace logging;
  22. using namespace testing;
  23. struct t_logger : public logger {
  24. t_logger(std::string const & name, std::shared_ptr<logger_impl> impl)
  25. : logger(name, impl) {}
  26. };
  27. void LoggerTest::SetUp() {
  28. pimpl.reset(new MockLoggerImpl);
  29. EXPECT_CALL(*pimpl, flush()).Times(AnyNumber());
  30. }
  31. void LoggerTest::TearDown() {
  32. pimpl.reset();
  33. }
  34. TEST_F(LoggerTest, LogsWithBraceFmtCode) {
  35. using testing::Field;
  36. EXPECT_CALL(*pimpl, write(Field(&logpacket::message, "5"))).Times(1);
  37. logger LOG = t_logger("", pimpl);
  38. LOG.log(LERROR, "{}", 5);
  39. }