changed to smart ptrs and trying to fix event_handler_tests
This commit is contained in:
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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")
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user