diff --git a/module/EventDispatcher/test/Listener/EventListenerTaskTest.php b/module/EventDispatcher/test/Listener/EventListenerTaskTest.php new file mode 100644 index 00000000..5cc6d5a9 --- /dev/null +++ b/module/EventDispatcher/test/Listener/EventListenerTaskTest.php @@ -0,0 +1,58 @@ +event = new stdClass(); + $this->listenerName = 'the_listener'; + + $this->task = new EventListenerTask($this->listenerName, $this->event); + } + + /** @test */ + public function toStringReturnsTheStringRepresentation(): void + { + $this->assertEquals( + sprintf('Listener -> "%s", Event -> "%s"', $this->listenerName, get_class($this->event)), + $this->task->toString() + ); + } + + /** @test */ + public function runInvokesContainerAndListenerWithEvent(): void + { + $invoked = false; + $container = $this->prophesize(ContainerInterface::class); + $listener = function (object $event) use (&$invoked) { + $invoked = true; + Assert::assertSame($event, $this->event); + }; + + $getListener = $container->get($this->listenerName)->willReturn($listener); + + $this->task->run($container->reveal()); + + $this->assertTrue($invoked); + $getListener->shouldHaveBeenCalledOnce(); + } +}