diff --git a/FlippR-Driver/build/CMakeLists.txt b/FlippR-Driver/build/CMakeLists.txt index 4603238..7903515 100644 --- a/FlippR-Driver/build/CMakeLists.txt +++ b/FlippR-Driver/build/CMakeLists.txt @@ -23,22 +23,22 @@ add_library(flippr_driver STATIC ${SOURCES}) target_link_libraries(flippr_driver ${CMAKE_SOURCE_DIR}/lib/libwiringPi.so.2.44) -#enable_testing(TRUE) +enable_testing(TRUE) # Prepare "Catch" library for other executables -#set(CATCH_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../src/tests) -#add_library(Catch INTERFACE) -#target_include_directories(Catch INTERFACE ${CATCH_INCLUDE_DIR}/*) +set(CATCH_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../src/tests) +add_library(Catch INTERFACE) +target_include_directories(Catch INTERFACE ${CATCH_INCLUDE_DIR}/*) # Make test executable -#set(TEST_SOURCES ${SOURCE_DIR}/../tests/input) -#include_directories(${TEST_SOURCES}) -#include_directories(${TEST_SOURCES}/mocks) +set(TEST_SOURCES ${SOURCE_DIR}/../tests/input) +include_directories(${TEST_SOURCES}) +include_directories(${TEST_SOURCES}/mocks) -#file(GLOB SOURCES ${TEST_SOURCES}/*.cpp) -#file(GLOB HEADER_SOURCES ${TEST_SOURCES}/*.hpp) +file(GLOB SOURCES ${TEST_SOURCES}/*.cpp) +file(GLOB HEADER_SOURCES ${TEST_SOURCES}/*.hpp) -#add_executable(tests ${SOURCES} ${HEADER_SOURCES}) +add_executable(tests ${SOURCES} ${HEADER_SOURCES}) -#target_link_libraries(flippr_driver) -#target_link_libraries(tests Catch) +target_link_libraries(flippr_driver) +target_link_libraries(tests Catch) diff --git a/FlippR-Driver/src/input/InputDriver.hpp b/FlippR-Driver/src/input/InputDriver.hpp index 2f040de..b4b4de4 100644 --- a/FlippR-Driver/src/input/InputDriver.hpp +++ b/FlippR-Driver/src/input/InputDriver.hpp @@ -45,7 +45,7 @@ public: } private: - EventNotifier* event_notifier; + IEventNotifier* event_notifier; IDetector* detector; }; diff --git a/FlippR-Driver/tests/input/TestInputDriver.cpp b/FlippR-Driver/tests/input/TestInputDriver.cpp index b160f07..9b54ecb 100644 --- a/FlippR-Driver/tests/input/TestInputDriver.cpp +++ b/FlippR-Driver/tests/input/TestInputDriver.cpp @@ -8,22 +8,29 @@ #include "../catch.hpp" #include "../fakeit.hpp" -#include "../../src/input/InputDriver.hpp" -#include "../../src/input/EventNotifier.h" - #define private public +#include "../../src/input/InputDriver.hpp" + +#include "../../src/input/Event.hpp" +#include "../../src/input/IEventNotifier.h" +#include "../../src/input/IDetector.h" + + using namespace fakeit; SCENARIO("An InputDriver gets created", "[construction}") { GIVEN("An EventNotifier") { - Mock event_notifier_mock; + Mock detector_mock; + + Mock event_notifier_mock; + Mock event_handler_mock; WHEN("The InputDriver gets created") { - Input::InputDriver input_driver(&event_notifier_mock.get()); + Input::InputDriver input_driver(&event_notifier_mock.get(), &detector_mock.get()); THEN("It saved the EventNotifier") { @@ -37,32 +44,33 @@ SCENARIO("An EventHandler [un]registers at the driver", "[[un]register]") { GIVEN("An InputDriver, EventHandler and an EventNotifier") { + Mock detector_mock; - Input::EventHandler event_handler = Input::EventHandlerMock(); - Input::EventNotifierMock event_notifier; + Mock event_handler_mock; + Mock event_notifier_mock; + When(Method(event_notifier_mock, register_event_handler)); + When(Method(event_notifier_mock, unregister_event_handler)); - Input::InputDriver input_driver(&event_notifier); - - REQUIRE(event_notifier.registered = false); + Input::InputDriver input_driver(&event_notifier_mock.get(), &detector_mock.get()); WHEN("The EventHandler registers at the driver") { - input_driver.register_event_handler(&event_handler); + input_driver.register_event_handler(&event_handler_mock.get()); THEN("The register_event_handler at the event_notifier gets called") { - REQUIRE(event_notifier.registered == true); + REQUIRE(Verify(Method(event_notifier_mock, register_event_handler).Using(&event_handler_mock.get()))); } } WHEN("The EventHandler unregisters at the driver") { - REQUIRE(event_notifier.registered = true); - input_driver.unregister_event_handler(&event_handler); + REQUIRE(Verify(Method(event_notifier_mock, register_event_handler).Using(&event_handler_mock.get()))); + input_driver.unregister_event_handler(&event_handler_mock.get()); THEN("The unregister_event_handler at the event_notifier gets called") { - REQUIRE(event_notifier.registered == false); + REQUIRE(Verify(Method(event_notifier_mock, unregister_event_handler).Using(&event_handler_mock.get()))); } } }