Пример #1
0
 /**
  * Foreach file provider: Create a plugin which needs this file provider and check,
  * if all required / pre-defined files actually exists.
  */
 public function testPluginGenerator()
 {
     foreach ($this->fileProvider as $name => $provider) {
         $config = $this->getConfigObject();
         $configName = $provider['config'];
         $config->{$configName} = true;
         $config->backendModel = 'Shopware\\CustomModels\\SwagTest\\Test';
         $ioAdapter = new Dummy();
         $generator = new Generator($ioAdapter, $config, new NameGenerator($config), new Template());
         $generator->setOutputDirectory('');
         $generator->run();
         // Test, if the file provider files, do exist
         foreach ($provider['files'] as $file) {
             $this->assertTrue(in_array($file, array_keys($ioAdapter->getFiles())), "{$file} not found in generated files");
         }
         // merge all provider files into one array
         $allProviderFiles = array_reduce(array_column($this->fileProvider, 'files'), function ($a, $b) {
             $a = $a ?: [];
             $b = $b ?: [];
             return array_merge($a, $b);
         });
         // Test, if existing files are defined by a file provider
         foreach (array_keys($ioAdapter->getFiles()) as $file) {
             $this->assertTrue(in_array($file, $allProviderFiles), "{$file} is not defined by any file provider");
         }
     }
 }
Пример #2
0
 /**
  * {@inheritdoc}
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $this->validateName($input->getArgument('name'));
     $this->validateNamespace($input->getOption('namespace'));
     if ($input->getOption('backendModel') !== null) {
         $this->validateModel($input->getOption('backendModel'));
     }
     $configuration = $this->getConfigurationObject($input);
     $generator = new Generator(new HardDrive(), $configuration, new NameGenerator($configuration), new Template());
     $generator->run();
 }
Пример #3
0
 /**
  * Test a plugin with backend files
  */
 public function testBackendPlugin()
 {
     $config = $this->getConfigObject();
     $config->hasBackend = true;
     $config->backendModel = 'Shopware\\CustomModels\\SwagTest\\Test';
     $ioAdapter = new Dummy();
     $generator = new Generator($ioAdapter, $config, new NameGenerator($config), new Template());
     $generator->setOutputDirectory('');
     $generator->run();
     foreach (array_merge($this->defaultFiles, $this->backendFiles) as $file) {
         $this->assertTrue(in_array($file, array_keys($ioAdapter->getFiles())), "{$file} not found in generated files");
     }
 }
 /**
  * @param Configuration $config
  * @param array $provider
  * @param array $fileProviders
  * @param OutputDirectoryProviderInterface $outputDirectoryProvider
  */
 private function providerTest(Configuration $config, array $provider, array $fileProviders, OutputDirectoryProviderInterface $outputDirectoryProvider)
 {
     $ioAdapter = new Dummy();
     $generator = new Generator($ioAdapter, $config, new NameGenerator($config), new Template(), new LegacyOptionFileProviderLoader($config->isLegacyPlugin), $outputDirectoryProvider);
     $generator->run();
     // Test, if the file provider files, do exist
     foreach ($provider['files'] as $file) {
         $this->assertTrue(in_array($file, array_keys($ioAdapter->getFiles())), "{$file} not found in generated files");
     }
     // merge all provider files into one array
     $allProviderFiles = array_reduce(array_column($fileProviders, 'files'), function ($a, $b) {
         $a = $a ?: [];
         $b = $b ?: [];
         return array_merge($a, $b);
     });
     // Test, if existing files are defined by a file provider
     foreach (array_keys($ioAdapter->getFiles()) as $file) {
         $this->assertTrue(in_array($file, $allProviderFiles), "{$file} is not defined by any file provider");
     }
 }