/**
  * 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
 /**
  * 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");
     }
 }