|
|
@@ -5,10 +5,13 @@
|
|
|
// Created by Sam Jaffe on 4/2/19.
|
|
|
//
|
|
|
|
|
|
+#include "logger/log_manager.h"
|
|
|
+
|
|
|
#include "resource_factory/prototype_factory.hpp"
|
|
|
|
|
|
#include "logger/c_logger.h"
|
|
|
-#include "logger/log_manager.h"
|
|
|
+#include "logger/exception.h"
|
|
|
+#include "logger/logger.h"
|
|
|
#include "logger/properties.h"
|
|
|
|
|
|
#include "mock_logger.h"
|
|
|
@@ -52,16 +55,37 @@ void LogManagerTest::TearDown() {
|
|
|
}
|
|
|
|
|
|
extern properties const APPENDER_LEVEL_PROPERTY_SCHEMA;
|
|
|
+extern properties const DEFAULT_LAYOUT_PROPERTY_SCHEMA;
|
|
|
extern properties const LOGGER_LEVEL_PROPERTY_SCHEMA;
|
|
|
extern properties const MIN_PROPERTY_SCHEMA;
|
|
|
extern properties const MULTIPLEX_PROPERTY_SCHEMA;
|
|
|
|
|
|
+
|
|
|
TEST_F(LogManagerTest, CanInjectMock) {
|
|
|
manager().configure(MIN_PROPERTY_SCHEMA);
|
|
|
+ EXPECT_THAT(appender, ::testing::NotNull());
|
|
|
+ EXPECT_THAT(layout, ::testing::NotNull());
|
|
|
+}
|
|
|
|
|
|
- using ::testing::NotNull;
|
|
|
-
|
|
|
+TEST_F(LogManagerTest, IfNoLayoutIsProvidedThenWeUseTheDefault) {
|
|
|
+ manager().configure(DEFAULT_LAYOUT_PROPERTY_SCHEMA);
|
|
|
EXPECT_THAT(appender, ::testing::NotNull());
|
|
|
+ EXPECT_THAT(layout, testing::IsNull());
|
|
|
+}
|
|
|
+
|
|
|
+TEST_F(LogManagerTest, WillThrowIfSchemaError) {
|
|
|
+ using namespace logging::property;
|
|
|
+ properties const BAD_SCHEMA = _obj({
|
|
|
+ {"configuration", _obj({
|
|
|
+ {"loggers", _obj({
|
|
|
+ {"root", _obj({
|
|
|
+ {"appenders", _v("Mock")}
|
|
|
+ })}
|
|
|
+ })},
|
|
|
+ {"appenders", _obj({})}
|
|
|
+ })}
|
|
|
+ });
|
|
|
+ EXPECT_THROW(manager().configure(BAD_SCHEMA), invalid_property_type);
|
|
|
}
|
|
|
|
|
|
using ::testing::_;
|
|
|
@@ -112,3 +136,22 @@ TEST_F(LogManagerTest, LevelCanBeBakedIntoLoggerProperties) {
|
|
|
c_logger l = mgr.c_get();
|
|
|
l.warn("TEST MESSAGE");
|
|
|
}
|
|
|
+
|
|
|
+TEST_F(LogManagerTest, CanFetchLoggerByName) {
|
|
|
+ manager mgr;
|
|
|
+ mgr.configure(MIN_PROPERTY_SCHEMA);
|
|
|
+
|
|
|
+ EXPECT_CALL(*appender, flush()).Times(AnyNumber());
|
|
|
+ EXPECT_CALL(*appender, write(MessageEq("TEST MESSAGE"), _));
|
|
|
+
|
|
|
+ c_logger l = mgr.c_get("root");
|
|
|
+ l.error("TEST MESSAGE");
|
|
|
+}
|
|
|
+
|
|
|
+TEST_F(LogManagerTest, ThrowsIfAskingForNonExistantLoggerName) {
|
|
|
+ manager mgr;
|
|
|
+ mgr.configure(MIN_PROPERTY_SCHEMA);
|
|
|
+
|
|
|
+ EXPECT_THROW(mgr.c_get("Mock"), std::out_of_range);
|
|
|
+ EXPECT_THROW(mgr.get("Mock"), std::out_of_range);
|
|
|
+}
|