compilable version
This commit is contained in:
@@ -41,7 +41,7 @@ SCENARIO("Creating a Detector object", "")
|
||||
Fake(Dtor(event_notifier_mock));
|
||||
When(Method(event_notifier_mock, distribute_event)).AlwaysReturn();
|
||||
|
||||
std::map<char, Event> events;
|
||||
std::map<char, std::shared_ptr<Event>> events;
|
||||
|
||||
WHEN("Detector is created")
|
||||
{
|
||||
@@ -71,13 +71,14 @@ SCENARIO("There are events at the input", "")
|
||||
|
||||
Event event1(1, '1', "event 1");
|
||||
Event event2(2, '2', "event 2");
|
||||
auto event2ptr = std::make_shared<Event>(event2);
|
||||
Event event3(3, '3', "event 3");
|
||||
|
||||
std::map<char, Event> events;
|
||||
std::map<char, std::shared_ptr<Event>> events;
|
||||
|
||||
events.insert(std::make_pair(1, event1));
|
||||
events.insert(std::make_pair(2, event2));
|
||||
events.insert(std::make_pair(3, event3));
|
||||
events.insert(std::make_pair(1, std::make_shared<Event>(event1)));
|
||||
events.insert(std::make_pair(2, event2ptr));
|
||||
events.insert(std::make_pair(3, std::make_shared<Event>(event3)));
|
||||
|
||||
WHEN("an event can be found at gpio interface")
|
||||
{
|
||||
@@ -87,7 +88,7 @@ SCENARIO("There are events at the input", "")
|
||||
{
|
||||
detector.is_running = false;
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(5));
|
||||
REQUIRE((bool)Verify(Method(event_notifier_mock, distribute_event).Using(event2)));
|
||||
REQUIRE((bool)Verify(Method(event_notifier_mock, distribute_event).Using(event2ptr)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -112,11 +113,11 @@ SCENARIO("There are events at the input but no suitable event in map", "")
|
||||
Event event2(2, '2', "event 2");
|
||||
Event event3(3, '3', "event 3");
|
||||
|
||||
std::map<char, Event> events;
|
||||
std::map<char, std::shared_ptr<Event>> events;
|
||||
|
||||
events.insert(std::make_pair(1, event1));
|
||||
events.insert(std::make_pair(2, event2));
|
||||
events.insert(std::make_pair(3, event3));
|
||||
events.insert(std::make_pair(1, std::make_shared<Event>(event1)));
|
||||
events.insert(std::make_pair(2, std::make_shared<Event>(event2)));
|
||||
events.insert(std::make_pair(3, std::make_shared<Event>(event3)));
|
||||
|
||||
WHEN("an event can be found at gpio interface")
|
||||
{
|
||||
|
||||
@@ -97,6 +97,7 @@ SCENARIO("An event should be distributed", "[distribute]")
|
||||
GIVEN("An event")
|
||||
{
|
||||
Event event(0, 0, "test");
|
||||
auto event_ptr = std::make_shared<Event>(event);
|
||||
|
||||
Mock<IBlockingQueue<Event>> queue_mock;
|
||||
Fake(Method(queue_mock, push));
|
||||
@@ -107,7 +108,7 @@ SCENARIO("An event should be distributed", "[distribute]")
|
||||
|
||||
WHEN("The event comes in")
|
||||
{
|
||||
notifier.distribute_event(event);
|
||||
notifier.distribute_event(event_ptr);
|
||||
THEN("The event gets queued")
|
||||
{
|
||||
notifier.is_running = false;
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user