/* * TestInputDriver.cpp * * Created on: May 31, 2018 * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht */ #include "../catch.hpp" #include "../fakeit.hpp" #define private public #include "../../src/utilities/config.h" #include "../../src/input/InputDriver.h" #include "../../src/input/Event.h" #include "../../src/input/IEventNotifier.h" #include "../../src/input/IDetector.h" using namespace fakeit; SCENARIO("An InputDriver gets created", "[construction}") { GIVEN("An EventNotifier") { Mock detector_mock; Mock event_notifier_mock; Mock event_handler_mock; WHEN("The InputDriver gets created") { Input::InputDriver input_driver(&event_notifier_mock.get(), &detector_mock.get()); THEN("It saved the EventNotifier") { REQUIRE(input_driver.event_notifier == &event_notifier_mock.get()); } } } } SCENARIO("An EventHandler [un]registers at the driver", "[un-register]") { GIVEN("An InputDriver, EventHandler and an EventNotifier") { Mock detector_mock; 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_mock.get(), &detector_mock.get()); WHEN("The EventHandler registers at the driver") { input_driver.register_event_handler(&event_handler_mock.get()); THEN("The register_event_handler at the event_notifier gets called") { REQUIRE((bool)Verify(Method(event_notifier_mock, register_event_handler).Using(&event_handler_mock.get()))); } } WHEN("The EventHandler unregisters at the driver") { REQUIRE((bool)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((bool)Verify(Method(event_notifier_mock, unregister_event_handler).Using(&event_handler_mock.get()))); } } } }