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