diff --git a/FlippR-Driver/src/tests/input/TestEventHandler.cpp b/FlippR-Driver/src/tests/input/TestEventHandler.cpp new file mode 100644 index 0000000..1eca710 --- /dev/null +++ b/FlippR-Driver/src/tests/input/TestEventHandler.cpp @@ -0,0 +1,54 @@ +/* + * TestEventHandler.cpp + * + * Created on: May 31, 2018 + * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht + */ + +#include "catch.hpp" + +#include "../../src/input/EventHandler.hpp" + +#include "mocks/InputDriverMock.hpp" + +#define private public + +SCENARIO("An EventHandler gets created and destroyed") +{ + GIVEN("A shared pointer to an InputDriver and an EventHandler") + { + std::shared_ptr input_driver; + + Input::EventHandler* event_handler = new Input::EventHandler(input_driver); + + WHEN("An EventHandler is created") + { + REQUIRE(input_driver->registered = false); + + THEN("The input driver is saved") + { + REQUIRE(event_handler->input_driver.get() == input_driver.get()); + } + THEN("The handler is registered at the driver") + { + REQUIRE(input_driver->registered == true); + } + } + + WHEN("The EventHandler is destroyed") + { + REQUIRE(input_driver->registered == true); + + delete(event_handler); + event_handler = NULL; + + THEN("The handler is unregistered at the driver") + { + REQUIRE(input_driver->registered == false); + } + } + } +} + +// Input::EventHandler::handle not tested because its virtual and should be overrided + diff --git a/FlippR-Driver/src/tests/input/mocks/InputDriverMock.hpp b/FlippR-Driver/src/tests/input/mocks/InputDriverMock.hpp new file mode 100644 index 0000000..9b85759 --- /dev/null +++ b/FlippR-Driver/src/tests/input/mocks/InputDriverMock.hpp @@ -0,0 +1,34 @@ +/* + * InputDriverMock.hpp + * + * Created on: May 31, 2018 + * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht + */ + +#ifndef SRC_TESTS_INPUT_MOCKS_INPUTDRIVERMOCK_HPP_ +#define SRC_TESTS_INPUT_MOCKS_INPUTDRIVERMOCK_HPP_ + + +#include "../../../src/input/InputDriver.hpp" +namespace Input +{ + +class InputDriverMock : InputDriver +{ +public: + InputDriverMock() : + registered(false) + {} + + void register_input_handler(EventHandler* handler) override + { + registered = true; + } + +public: + bool registered; +}; + +} + +#endif /* SRC_TESTS_INPUT_MOCKS_INPUTDRIVERMOCK_HPP_ */ diff --git a/FlippR-Driver/src/utilities/InputGPIOInterface.h b/FlippR-Driver/src/utilities/InputGPIOInterface.h index c3de7fd..9d99496 100644 --- a/FlippR-Driver/src/utilities/InputGPIOInterface.h +++ b/FlippR-Driver/src/utilities/InputGPIOInterface.h @@ -12,8 +12,6 @@ #include -#define INPUT_MATRIX_SIZE 8 - class InputGPIOInterface : GPIOInterface { public: