/** * {@inheritdoc} */ public function doOperation() { if (empty($this->data)) { return; } $this->interceptionConfigurationBuilder->addAreaCode(App\Area::AREA_GLOBAL); foreach ($this->areaList->getCodes() as $areaCode) { $this->interceptionConfigurationBuilder->addAreaCode($areaCode); } $classesList = []; foreach ($this->data['intercepted_paths'] as $path) { $classesList = array_merge($classesList, $this->classesScanner->getList($path)); } $generatorIo = new \Magento\Framework\Code\Generator\Io( new \Magento\Framework\Filesystem\Driver\File(), $this->data['path_to_store'] ); $generator = $this->generatorFactory->create( [ 'ioObject' => $generatorIo, 'generatedEntities' => [ Interceptor::ENTITY_TYPE => 'Magento\Setup\Module\Di\Code\Generator\Interceptor', ] ] ); $configuration = $this->interceptionConfigurationBuilder->getInterceptionConfiguration($classesList); $generator->generateList($configuration); }
/** * @dataProvider getInterceptionConfigurationDataProvider */ public function testGetInterceptionConfiguration($plugins) { $definedClasses = ['Class1']; $this->interceptionConfig->expects($this->once())->method('hasPlugins')->with('Class1')->willReturn(true); $this->typeReader->expects($this->any())->method('isConcrete')->willReturnMap([['Class1', true], ['instance', true]]); $this->cacheManager->expects($this->once())->method('setEnabled')->with([CompiledConfig::TYPE_IDENTIFIER], true); $this->pluginList->expects($this->once())->method('setInterceptedClasses')->with($definedClasses); $this->pluginList->expects($this->once())->method('setScopePriorityScheme')->with(['global', 'areaCode']); $this->pluginList->expects($this->once())->method('getPluginsConfig')->willReturn(['instance' => $plugins]); $this->model->addAreaCode('areaCode'); $this->model->getInterceptionConfiguration($definedClasses); }