/** * Test run suites behavior. * * @param \ArrayObject $suites * @param int $executor * @param int $statusCode * * @dataProvider dpRun */ public function testRun(\ArrayObject $suites, $executor, $statusCode) { /** @var Suggestible|ContainerBuilder $container */ $container = new ContainerBuilder(); /** @var Suggestible $logger */ $logger = new Logger('test'); Configurator::setCustomBehavior($logger, 'info', null); $container->set('logger', $logger); /** @var Suggestible $dispatcher */ $dispatcher = new EventDispatcher(); Configurator::storeInvokes($dispatcher, true); $container->set('dispatcher', $dispatcher); /** @var Suggestible|Processor $processor */ $processor = new Processor($container); Configurator::storeInvokes($processor, true); Configurator::setCustomBehavior($processor, 'executor', $executor); $this->assertSame($statusCode, $processor->run($suites)); $this->assertSame([[EventStorage::EV_APP_STARTED], [EventStorage::EV_APP_FINISHED]], Configurator::getInvokes($dispatcher, 'dispatch'), 'Dispatcher did not send application events.'); $this->assertSame(1, Configurator::getInvokesCount($processor, 'run')); $this->assertSame($suites->count(), Configurator::getInvokesCount($processor, 'backupGlobals')); $this->assertSame($suites->count(), Configurator::getInvokesCount($processor, 'executor')); $this->assertSame($suites->count(), Configurator::getInvokesCount($processor, 'restoreGlobals')); }