/** * Tests run method. */ public function testRun() { $runner = new ManifestRunner(); $finished = false; /** @var object $manifestProphecy */ $manifestProphecy = $this->prophesize('Transfer\\Manifest\\ManifestInterface'); $manifestProphecy->configureProcedureBuilder(Argument::type('object'))->willReturn(null); $manifestProphecy->getProcessor()->willReturn(new SequentialProcessor()); $manifestProphecy->configureProcessor(Argument::type('object'))->will(function ($args) use(&$finished) { /** @var EventDrivenProcessor $processor */ $processor = $args[0]; $processor->addListener(TransferEvents::POST_PROCESS, function () use(&$finished) { $finished = true; }); }); /** @var ManifestInterface $manifest */ $manifest = $manifestProphecy->reveal(); $runner->setEventDispatcher(new EventDispatcher()); $runner->run($manifest); $this->assertTrue($finished); }