Example #1
0
 /**
  * Test constructor behavior.
  */
 public function testConstructor()
 {
     $this->assertCount(2, Configurator::getAllInvokes($this->controller));
     $invokes = Configurator::getInvokes($this->controller, 'setRunner');
     $this->assertCount(1, $invokes);
     $this->assertSame([$this->runner], $invokes[0]);
     $invokes = Configurator::getInvokes($this->controller, 'switchTo');
     $this->assertCount(1, $invokes);
     $this->assertSame(['controller.run'], $invokes[0]);
 }
Example #2
0
 /**
  * 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'));
 }