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); })); }