mock_logger.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //
  2. // mock_logger.h
  3. // logger_test
  4. //
  5. // Created by Sam Jaffe on 4/2/19.
  6. //
  7. #ifndef mock_logger_h
  8. #define mock_logger_h
  9. #include <gmock/gmock.h>
  10. #include "logger/logger_impl.h"
  11. namespace logging {
  12. inline void PrintTo(location_info const & info, std::ostream * os) {
  13. if (info.line) {
  14. (*os) << "{\"" << info.filename << "\", \"" <<
  15. info.function << "\", " << info.line << "}";
  16. } else {
  17. (*os) << "NULL";
  18. }
  19. }
  20. inline void PrintTo(logpacket const & pkt, std::ostream * os) {
  21. (*os) << "{ " << pkt.level << ", ";
  22. PrintTo(pkt.info, os);
  23. (*os) << ", \"" << pkt.logger << "\", \"" << pkt.message << "\" }";
  24. }
  25. }
  26. struct MockLoggerImpl : public logging::logger_impl {
  27. MockLoggerImpl() { SetLogLevel(logging::LTRACE); }
  28. void SetLogLevel(logging::log_level ll) { min_log_level = ll; }
  29. MOCK_METHOD0(flush, void());
  30. MOCK_METHOD1(write, void(logging::logpacket const &));
  31. MOCK_METHOD2(write, void(logging::log_level, std::string const &));
  32. };
  33. struct LoggerTest : public testing::Test {
  34. void SetUp() override {
  35. pimpl.reset(new MockLoggerImpl);
  36. using testing::AnyNumber;
  37. EXPECT_CALL(*pimpl, flush()).Times(AnyNumber());
  38. }
  39. void TearDown() override {
  40. pimpl.reset();
  41. }
  42. std::shared_ptr<MockLoggerImpl> pimpl;
  43. };
  44. #endif /* mock_logger_h */