예제 #1
0
 function genericCompositeName(Assert $assert)
 {
     $this->test->suite('foo', function (GenericTestSuite $suite) {
         $suite->test('bar');
         $suite->test('baz');
     });
     $this->executeCommand($assert, ['Foo::foo::baz']);
     $assert($this->listener->started[0]->toString(), 'Foo::foo::baz');
 }
예제 #2
0
 function composedSuites()
 {
     $this->suite->suite("Bar", function (GenericTestSuite $suite) {
         $suite->test("baz", function () {
         });
     });
     $this->suite->run($this->listener);
     $this->assert->size($this->listener->results, 1);
     $this->assert->size($this->listener->started, 3);
     $this->assert($this->listener->started[0]->toString(), "Foo");
     $this->assert($this->listener->started[1]->toString(), "Foo::Bar");
     $this->assert($this->listener->started[2]->toString(), "Foo::Bar::baz");
 }
예제 #3
0
 private function buildTestSuite($suiteConfig, TestName $parent = null)
 {
     if (is_string($suiteConfig)) {
         return $this->linkConfiguration($suiteConfig, $parent);
     }
     $suiteGenerators = ['file' => function ($file) use($parent) {
         return new FileTestSuite($this->getTestSuiteFactory(), $this->getFilter(), $this->fullPath(), $file, $parent);
     }, 'class' => function ($class) use($parent) {
         return $this->getTestSuiteFactory()->getTestSuite($class, $this->getFilter(), $parent);
     }, 'name' => function ($name) use($parent, $suiteConfig) {
         $suite = new GenericTestSuite($name, $parent);
         foreach ($this->getIn($suiteConfig, 'suites', []) as $child) {
             $suite->add($this->buildTestSuite($child, $suite->getName()));
         }
         return $suite;
     }];
     foreach ($suiteGenerators as $key => $generate) {
         if (array_key_exists($key, $suiteConfig)) {
             return $generate($suiteConfig[$key]);
         }
     }
     throw new \Exception('Invalid suite configuration');
 }
예제 #4
0
 private function runGenericTestCase($callback)
 {
     $this->suite->add(new GenericTestCase('bar', $callback));
     $this->suite->run($this->listener);
 }
예제 #5
0
 protected function runTestSuite()
 {
     $this->suite->run($this->listener);
     $this->outputLines = explode(PHP_EOL, trim($this->output));
 }