| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- //
- // log_manager_test.cxx
- // logger_test
- //
- // Created by Sam Jaffe on 4/2/19.
- //
- #include "../../../types/resource_factory/include/resource_factory/prototype_factory.hpp"
- #include "logger/c_logger.h"
- #include "logger/detail/logger_impl.h"
- #include "logger/log_manager.h"
- #include "logger/properties.h"
- #include "mock_logger.h"
- using namespace logging;
- class LogManagerTest : public ::testing::Test {
- public:
- void SetUp() override;
- void TearDown() override;
- protected:
- std::shared_ptr<MockLoggerImpl> logger;
- private:
- impl_factory::scoped_binding binding_;
- };
- void LogManagerTest::SetUp() {
- auto GetMock = [this](properties const &) {
- return logger = std::make_shared<MockLoggerImpl>();
- };
- binding_ = impl_factory::instance().bind_scoped("Mock", GetMock);
- }
- void LogManagerTest::TearDown() {
- binding_.reset();
- }
- extern properties const MIN_PROPERTY_SCHEMA;
- extern properties const MULTIPLEX_PROPERTY_SCHEMA;
- TEST_F(LogManagerTest, CanInjectMock) {
- manager().configure(MIN_PROPERTY_SCHEMA);
- using ::testing::NotNull;
- EXPECT_THAT(logger, ::testing::NotNull());
- }
- TEST_F(LogManagerTest, CanFetchInjectedMock) {
- manager mgr;
- mgr.configure(MIN_PROPERTY_SCHEMA);
-
- using ::testing::_;
- using ::testing::AnyNumber;
- using ::testing::Field;
- EXPECT_CALL(*logger, flush()).Times(AnyNumber());
- EXPECT_CALL(*logger, write(Field(&logpacket::message, "TEST MESSAGE")));
- c_logger l = mgr.c_get();
- l.error("TEST MESSAGE");
- }
- TEST_F(LogManagerTest, MultiplexMockLogsToMultipleImpls) {
- manager mgr;
- mgr.configure(MULTIPLEX_PROPERTY_SCHEMA);
-
- using ::testing::_;
- using ::testing::AnyNumber;
- using ::testing::Field;
- EXPECT_CALL(*logger, flush()).Times(AnyNumber());
- EXPECT_CALL(*logger, write(Field(&logpacket::message, "TEST MESSAGE"))).Times(2);
-
- c_logger l = mgr.c_get();
- l.error("TEST MESSAGE");
- }
|