Example #1
0
 public function testGetDisplay()
 {
     $output = $this->tester->getOutput();
     $this->provider->alias('Danack\\Console\\Output\\Output', get_class($output));
     $this->provider->share($output);
     $callable = $this->parsedCommand->getCallable();
     $this->provider->execute($callable, []);
     $this->assertEquals('foo' . PHP_EOL, $this->tester->getDisplay(), '->getDisplay() returns the display of the last execution');
 }
 /**
  * Resolves Auryn controller dependencies after everything else has been set up correctly
  *
  * @see <https://github.com/rdlowrey/Auryn>
  */
 public function resolveAuryn()
 {
     $app = $this;
     $config = $this->config['auryn'];
     $provider = new Provider(new ReflectionPool());
     foreach ($config as $key => $values) {
         switch ($key) {
             case $key === 'define':
                 if (!is_null($values)) {
                     array_walk($values, function ($definition, $key) use($provider) {
                         $provider->define($key, $definition);
                     });
                 }
                 break;
             case $key === 'delegate':
                 if (!is_null($values)) {
                     array_walk($values, function ($delegate, $object) use($provider) {
                         $provider->delegate($object, $delegate);
                     });
                 }
                 break;
             case $key === 'alias':
                 if (!is_null($values)) {
                     array_walk($values, function ($concrete, $interface) use($provider) {
                         $provider->alias($interface, $concrete);
                     });
                 }
                 break;
             case $key === 'share':
                 if (!is_null($values)) {
                     array_walk($values, function ($share) use($provider, $app) {
                         $provider->share($app[$share]);
                     });
                 }
                 break;
         }
     }
     $repositoryFiles = glob(__DIR__ . "/Model/Repository/*Repository.php");
     array_walk($repositoryFiles, function ($file) use($app, $provider) {
         /** @var \Doctrine\ORM\EntityManager $orm */
         $orm = $app['orm.em'];
         $repositoryName = str_replace(['Repository', '.php'], '', basename($file));
         $provider->share($orm->getRepository(sprintf('\\App\\Model\\Entity\\%s', $repositoryName)));
     });
     $app['resolver'] = $app->share($app->extend('resolver', function ($resolver, $app) use($provider, $config) {
         return new AurynControllerResolver($resolver, $provider, $app, $app['request'], $config);
     }));
 }