/* * TestInputDriver.cpp * * Created on: May 31, 2018 * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht */ #include "../catch.hpp" #include "../../input/InputDriver.hpp" #include "mocks/EventHandlerMock.hpp" #include "mocks/EventNotifierMock.hpp" #define private public SCENARIO("An InputDriver gets created", "[construction}") { GIVEN("An EventNotifier") { Input::EventNotifierMock event_notifier; WHEN("The InputDriver gets created") { Input::InputDriver input_driver(&event_notifier); THEN("It saved the EventNotifier") { REQUIRE(input_driver.event_notifier == &event_notifier); } } } } SCENARIO("An EventHandler [un]registers at the driver", "[[un]register]") { GIVEN("An InputDriver, EventHandler and an EventNotifier") { Input::EventHandler event_handler = Input::EventHandlerMock(); Input::EventNotifierMock event_notifier; Input::InputDriver input_driver(&event_notifier); REQUIRE(event_notifier.registered = false); WHEN("The EventHandler registers at the driver") { input_driver.register_event_handler(&event_handler); THEN("The register_event_handler at the event_notifier gets called") { REQUIRE(event_notifier.registered == true); } } WHEN("The EventHandler unregisters at the driver") { REQUIRE(event_notifier.registered = true); input_driver.unregister_event_handler(&event_handler); THEN("The unregister_event_handler at the event_notifier gets called") { REQUIRE(event_notifier.registered == false); } } } }