/**
  * Create service
  *
  * @param ServiceLocatorInterface $serviceLocator
  *
  * @return mixed|IndexController
  */
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     $controller = new IndexController();
     $serviceLocator = $this->transformIntoServiceManager($serviceLocator);
     /** @var array|\Zend\Config\Config $configuration */
     $configuration = $serviceLocator->get('Config');
     $key = 'net_bazzline_zf_cli_generator';
     if (!isset($configuration[$key])) {
         throw new InvalidArgumentException('expected configuration key "' . $key . '" not found');
     }
     /** @var PipeInterface $cliGenerator */
     $cliGenerator = $serviceLocator->get('NetBazzlineCliGeneratorGenerateCliContent');
     /** @var PipeInterface $configurationGenerator */
     $configurationGenerator = $serviceLocator->get('NetBazzlineCliGeneratorGenerateConfigurationContent');
     $configuration = $configuration[$key];
     $pathToApplication = $configuration['application']['path'] . DIRECTORY_SEPARATOR . $configuration['application']['name'];
     $pathToAutoload = $configuration['autoload']['path'] . DIRECTORY_SEPARATOR . $configuration['autoload']['name'];
     $pathToConfiguration = $configuration['configuration']['target']['path'] . DIRECTORY_SEPARATOR . $configuration['configuration']['target']['name'];
     $pathToCli = $configuration['cli']['target']['path'] . DIRECTORY_SEPARATOR . $configuration['cli']['target']['name'];
     $prefix = $configuration['cli']['prefix'];
     $controller->setGenerateConfigurationProcessPipe($configurationGenerator);
     $controller->setGenerateCliProcessPipe($cliGenerator);
     $controller->setPathToApplication($pathToApplication);
     $controller->setPathToAutoload($pathToAutoload);
     $controller->setPathToConfiguration($pathToConfiguration);
     $controller->setPathToCli($pathToCli);
     $controller->setPrefix($prefix);
     return $controller;
 }
 public function testGenerateActionWithFilledConfigurationValidLocatorWithVerbose()
 {
     $this->markTestIncomplete();
     $configuration = array('name_to_configuration_path' => array('valid_locator' => __FILE__));
     $console = $this->console;
     $processPipe = $this->getMockOfProcessPipeInterface();
     $processPipe->shouldReceive('execute')->once();
     $console->shouldReceive('writeLine')->with('generating "valid_locator" by using configuration file "' . __FILE__ . '"')->once();
     $this->controller->setConfiguration($configuration);
     $this->controller->setGenerateConfigurationProcessPipe($processPipe);
     $this->routeMatch->setParam('action', 'generate');
     $this->request->setParams($this->getParameters(array('locator_name' => 'valid_locator', 'verbose' => true)));
     $this->controller->dispatch($this->request);
 }