compilable version

This commit is contained in:
Neeflix
2018-08-08 12:22:11 +02:00
parent 67e70405e0
commit 494021d910
6 changed files with 104 additions and 14 deletions

View File

@@ -37,7 +37,9 @@ SCENARIO("An InputDriver gets created", "[construction}")
WHEN("The InputDriver gets created")
{
std::shared_ptr<IEventNotifier> event_notifier_ptr(&event_notifier_mock.get());
InputDriver input_driver(event_notifier_ptr, std::unique_ptr<IDetector>(&detector_mock.get()));
std::map<std::string, std::shared_ptr<Event>> events;
InputDriver input_driver(event_notifier_ptr, std::unique_ptr<IDetector>(&detector_mock.get()), events);
THEN("It saves the EventNotifier and the Detector")
{
@@ -67,7 +69,10 @@ SCENARIO("An EventHandler [un]registers at the driver", "[un-register]")
Fake(Dtor(event_notifier_mock));
std::shared_ptr<IEventNotifier> event_notifier_ptr(&event_notifier_mock.get());
InputDriver input_driver(event_notifier_ptr, std::unique_ptr<IDetector>(&detector_mock.get()));
std::map<std::string, std::shared_ptr<Event>> events;
InputDriver input_driver(event_notifier_ptr, std::unique_ptr<IDetector>(&detector_mock.get()), events);
WHEN("The EventHandler registers at the driver")
{
@@ -92,3 +97,58 @@ SCENARIO("An EventHandler [un]registers at the driver", "[un-register]")
}
SCENARIO("An Input Driver is created normally", "")
{
GIVEN("An InputDriver, EventHandler and an EventNotifier and some events")
{
LoggerFactory::CreateInputTestLogger();
Mock<Input::IDetector> detector_mock;
Fake(Dtor(detector_mock));
Mock<IEventHandler> event_handler_mock;
Fake(Dtor(event_handler_mock));
Mock<Input::IEventNotifier> event_notifier_mock;
Fake(Dtor(event_notifier_mock));
std::shared_ptr<IEventNotifier> event_notifier_ptr(&event_notifier_mock.get());
Event event1('a', 2, "e1");
auto event1_ptr = std::make_shared<Event>(event1 );
Event event2('b', 1, "e2");
Event event3('c', 2, "e3");
Event event4('d', 1, "e4");
std::map<std::string, std::shared_ptr<Event>> events;
events.emplace("e1", event1_ptr);
events.emplace("e2", std::make_shared<Event>(event2));
events.emplace("e3", std::make_shared<Event>(event3));
events.emplace("e4", std::make_shared<Event>(event4));
InputDriver input_driver(event_notifier_ptr, std::unique_ptr<IDetector>(&detector_mock.get()), events);
WHEN("Someone asks for an event that is registered")
{
auto event = input_driver.get_event("e1");
THEN("The obtained event should be the same as emplaced before")
{
REQUIRE(event==event1_ptr);
}
}
WHEN("someone asks for an event that is not registered")
{
auto event = input_driver.get_event("no event");
THEN("the obtained event should be null")
{
REQUIRE(event->name == "ERROR");
}
}
}
}