From 17f05a0290536b4aa76e396a4631a551219af674 Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Tue, 19 Jun 2018 15:01:52 +0200 Subject: [PATCH] seperated logger & mocked destructors --- .../src/input/InputDriverFactory.cpp | 12 ++----- FlippR-Driver/src/utilities/LoggerFactory.hpp | 32 +++++++++++++++++++ FlippR-Driver/tests/input/TestInputDriver.cpp | 19 ++++++++--- 3 files changed, 50 insertions(+), 13 deletions(-) create mode 100644 FlippR-Driver/src/utilities/LoggerFactory.hpp diff --git a/FlippR-Driver/src/input/InputDriverFactory.cpp b/FlippR-Driver/src/input/InputDriverFactory.cpp index 4f47310..4bede47 100644 --- a/FlippR-Driver/src/input/InputDriverFactory.cpp +++ b/FlippR-Driver/src/input/InputDriverFactory.cpp @@ -8,6 +8,8 @@ #include "InputDriverFactory.h" +#include "../utilities/LoggerFactory.hpp" + #include "EventNotifier.h" using namespace nlohmann; @@ -66,13 +68,5 @@ std::map InputDriverFactory::create_input_events(json matrix_config void InputDriverFactory::ConfigureLogger() { - el::Loggers::getLogger(INPUT_LOGGER); - - //TODO may configure? - el::Configurations conf; - conf.setToDefault(); - conf.set(el::Level::Global, el::ConfigurationType::Filename, DRIVER_LOG_FILE); - conf.set(el::Level::Global, el::ConfigurationType::Format, "%datetime [%level] [%func] : %msg"); - - el::Loggers::reconfigureLogger(INPUT_LOGGER, conf); + LoggerFactory::CreateInputLogger(); } diff --git a/FlippR-Driver/src/utilities/LoggerFactory.hpp b/FlippR-Driver/src/utilities/LoggerFactory.hpp new file mode 100644 index 0000000..e77340e --- /dev/null +++ b/FlippR-Driver/src/utilities/LoggerFactory.hpp @@ -0,0 +1,32 @@ +/* + * LoggerFactory.hpp + * + * Created on: Jun 19, 2018 + * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht + */ + +#ifndef SRC_UTILITIES_LOGGERFACTORY_HPP_ +#define SRC_UTILITIES_LOGGERFACTORY_HPP_ + +#include "config.h" + +class LoggerFactory +{ +public: + static void CreateInputLogger() + { + el::Loggers::getLogger(INPUT_LOGGER); + + //TODO may configure? + el::Configurations conf; + conf.setToDefault(); + conf.set(el::Level::Global, el::ConfigurationType::Filename, DRIVER_LOG_FILE); + conf.set(el::Level::Global, el::ConfigurationType::Format, "%datetime [%level] [%func] : %msg"); + + el::Loggers::reconfigureLogger(INPUT_LOGGER, conf); + } +}; + + + +#endif /* SRC_UTILITIES_LOGGERFACTORY_HPP_ */ diff --git a/FlippR-Driver/tests/input/TestInputDriver.cpp b/FlippR-Driver/tests/input/TestInputDriver.cpp index 2702067..52aff97 100644 --- a/FlippR-Driver/tests/input/TestInputDriver.cpp +++ b/FlippR-Driver/tests/input/TestInputDriver.cpp @@ -10,10 +10,9 @@ #define private public -#include "../../src/utilities/config.h" +#include "../../src/utilities/LoggerFactory.hpp" #include "../../src/input/InputDriver.h" -#include "../../src/input/Event.h" #include "../../src/input/IEventNotifier.h" #include "../../src/input/IDetector.h" @@ -24,10 +23,15 @@ SCENARIO("An InputDriver gets created", "[construction}") { GIVEN("An EventNotifier") { + LoggerFactory::CreateInputLogger(); + Mock detector_mock; + When(Dtor(detector_mock)).AlwaysReturn(); Mock event_notifier_mock; + When(Dtor(event_notifier_mock)).AlwaysReturn(); Mock event_handler_mock; + When(Dtor(event_handler_mock)).AlwaysReturn(); WHEN("The InputDriver gets created") { @@ -45,12 +49,19 @@ SCENARIO("An EventHandler [un]registers at the driver", "[un-register]") { GIVEN("An InputDriver, EventHandler and an EventNotifier") { + LoggerFactory::CreateInputLogger(); + Mock detector_mock; + When(Dtor(detector_mock)).AlwaysReturn(); Mock event_handler_mock; + When(Method(event_handler_mock, handle)).AlwaysReturn(); + When(Dtor(event_handler_mock)).AlwaysReturn(); + Mock event_notifier_mock; - When(Method(event_notifier_mock, register_event_handler)); - When(Method(event_notifier_mock, unregister_event_handler)); + When(Method(event_notifier_mock, register_event_handler)).AlwaysReturn(); + When(Method(event_notifier_mock, unregister_event_handler)).AlwaysReturn(); + When(Dtor(event_notifier_mock)).AlwaysReturn(); Input::InputDriver input_driver(&event_notifier_mock.get(), &detector_mock.get());