protected function execute(InputInterface $input, OutputInterface $output) { $this->container = $this->getContainer(); $this->nameGenerator = $this->container->get('dlabs.worker.generator.sidekiq_worker_name'); $services = preg_grep($this->nameGenerator->getRegex(), $this->container->getServiceIds()); $generator = $this->container->get('dlabs.worker.generator.sidekiq_worker'); $generator->setSkeletonDirs([$this->container->get('kernel')->locateResource('@DLabsWorkerBundle/Resources')]); foreach ($services as $serviceName) { $class = $this->nameGenerator->generate($serviceName); $filename = $this->nameGenerator->generateFilename($serviceName); $generator->generate('template/sidekiq_worker.rb.twig', "app/workers/{$filename}", ['namespace' => __NAMESPACE__, 'service' => $serviceName, 'class' => $class]); $output->writeln(sprintf('Generated <info>%s</info>', "app/workers/{$filename}")); } }
/** * Tests that Container::getServiceIds() works properly. * * @covers ::getServiceIds */ public function testGetServiceIds() { $service_definition_keys = array_keys($this->containerDefinition['services']); $this->assertEquals($service_definition_keys, $this->container->getServiceIds(), 'Retrieved service IDs match definition.'); $mock_service = new MockService(); $this->container->set('bar', $mock_service); $this->container->set('service.provider', $mock_service); $service_definition_keys[] = 'bar'; $this->assertEquals($service_definition_keys, $this->container->getServiceIds(), 'Retrieved service IDs match definition after setting new services.'); }