changed to smart ptrs and trying to fix event_handler_tests

This commit is contained in:
Jonas Zeunert
2018-07-11 19:00:24 +02:00
parent 26c63d946d
commit 8b9ec68662
12 changed files with 47 additions and 61 deletions

View File

@@ -53,7 +53,7 @@ SCENARIO("Creating a Detector object", "")
WHEN("Detector is created")
{
Detector detector(&gpio_interface_mock.get(), events, &event_notifier_mock.get());
Detector detector(std::unique_ptr<IInputGPIOInterface>(&gpio_interface_mock.get()), events, std::shared_ptr<IEventNotifier>(&event_notifier_mock.get()));
THEN("a thread should be created")
{
REQUIRE(typeid(detector.detect_thread).hash_code() == typeid(std::thread).hash_code());

View File

@@ -63,13 +63,13 @@ SCENARIO("An EventHandler gets [un]registered at the notifier", "[un-register no
AND_WHEN("The EventHandler gets unregistered at the driver")
{
REQUIRE(!notifier.event_handler.empty());
REQUIRE(!notifier.event_handlers.empty());
notifier.unregister_event_handler(&event_handler_mock.get());
THEN("The list of event_handlers is empty")
{
REQUIRE(notifier.event_handler.empty());
REQUIRE(notifier.event_handlers.empty());
}
}
}
@@ -86,6 +86,7 @@ SCENARIO("An event should be distributed", "[distribute]")
Mock<IBlockingQueue<Event>> queue_mock;
When(Method(queue_mock, push)).AlwaysReturn();
When(Method(queue_mock, pop)).AlwaysDo([](){return Event(0,0,"mock");});
Fake(Dtor(queue_mock));
EventNotifier notifier;

View File

@@ -19,6 +19,7 @@
using namespace fakeit;
using namespace Input;
SCENARIO("An InputDriver gets created", "[construction}")
{
@@ -26,21 +27,22 @@ SCENARIO("An InputDriver gets created", "[construction}")
{
LoggerFactory::CreateInputLogger();
Mock<Input::IDetector> detector_mock;
Mock<IDetector> detector_mock;
Fake(Dtor(detector_mock));
Mock<Input::IEventNotifier> event_notifier_mock;
Mock<IEventNotifier> event_notifier_mock;
Fake(Dtor(event_notifier_mock));
Mock<IEventHandler> event_handler_mock;
Fake(Dtor(event_handler_mock));
WHEN("The InputDriver gets created")
{
Input::InputDriver input_driver(&event_notifier_mock.get(), &detector_mock.get());
std::shared_ptr<IEventNotifier> event_notifier_ptr(&event_notifier_mock.get());
InputDriver input_driver(event_notifier_ptr, std::unique_ptr<IDetector>(&detector_mock.get()));
THEN("It saves the EventNotifier and the Detector")
{
REQUIRE(input_driver.event_notifier == &event_notifier_mock.get());
REQUIRE(input_driver.detector == &detector_mock.get());
REQUIRE(input_driver.event_notifier == event_notifier_ptr);
REQUIRE(&(*input_driver.detector) == &detector_mock.get());
}
}
}
@@ -64,7 +66,8 @@ SCENARIO("An EventHandler [un]registers at the driver", "[un-register]")
Fake(Method(event_notifier_mock, unregister_event_handler));
Fake(Dtor(event_notifier_mock));
Input::InputDriver input_driver(&event_notifier_mock.get(), &detector_mock.get());
std::shared_ptr<IEventNotifier> event_notifier_ptr(&event_notifier_mock.get());
InputDriver input_driver(event_notifier_ptr, std::unique_ptr<IDetector>(&detector_mock.get()));
WHEN("The EventHandler registers at the driver")
{