diff --git a/datamodels/2.x/combodo-data-feature-removal/src/Controller/DataFeatureRemovalController.php b/datamodels/2.x/combodo-data-feature-removal/src/Controller/DataFeatureRemovalController.php index 54d8c1dd7..bc05d055e 100644 --- a/datamodels/2.x/combodo-data-feature-removal/src/Controller/DataFeatureRemovalController.php +++ b/datamodels/2.x/combodo-data-feature-removal/src/Controller/DataFeatureRemovalController.php @@ -87,8 +87,7 @@ class DataFeatureRemovalController extends Controller private function Analyze(): void { $sSourceEnv = MetaModel::GetEnvironment(); - $oDryRemovalRuntimeEnvironment = new DryRemovalRuntimeEnvironment(); - $oDryRemovalRuntimeEnvironment->Prepare($sSourceEnv, $this->aSelectedExtensionsForCheck); + $oDryRemovalRuntimeEnvironment = new DryRemovalRuntimeEnvironment($sSourceEnv, $this->aSelectedExtensionsForCheck); $oDryRemovalRuntimeEnvironment->CompileFrom($sSourceEnv); $oSetupAudit = new SetupAudit($sSourceEnv); diff --git a/setup/feature_removal/DryRemovalRuntimeEnvironment.php b/setup/feature_removal/DryRemovalRuntimeEnvironment.php index f95f4a569..e48467a79 100644 --- a/setup/feature_removal/DryRemovalRuntimeEnvironment.php +++ b/setup/feature_removal/DryRemovalRuntimeEnvironment.php @@ -19,32 +19,28 @@ class DryRemovalRuntimeEnvironment extends RunTimeEnvironment /** * Toolset for building a run-time environment * - * @param string $sEnvironment + * @param string $sSourceEnv: environment from which setup is inspired to simulate extension removal and usee CompileFrom... */ - public function __construct($sEnvironment = 'production') + public function __construct($sSourceEnv = 'production', array $aExtensionCodesToRemove = []) { - parent::__construct($sEnvironment, false); - $this->aExtensionsByCode = []; + parent::__construct($sSourceEnv, false); + $this->aExtensionsByCode = $aExtensionCodesToRemove; + $this->Prepare($sSourceEnv, $this->sTargetEnv); } /** - * @param string $sSourceEnv - * @param array $aExtensionCodesToRemove - * - * @return void - * @throws \Exception + * @param string $sSourceEnv + * @param string $sTargetEnv + * @return void + * @throws \MissingDependencyException */ - public function Prepare(string $sSourceEnv, array $aExtensionCodesToRemove) + private function Prepare(string $sSourceEnv, string $sTargetEnv) { - $sEnv = $this->sTargetEnv; - $this->aExtensionsByCode = $aExtensionCodesToRemove; - $this->Cleanup(); - SetupUtils::copydir(APPROOT."/data/$sSourceEnv-modules", APPROOT."/data/$sEnv-modules"); + SetupUtils::copydir(APPROOT."/data/$sSourceEnv-modules", APPROOT."/data/$sTargetEnv-modules"); + SetupUtils::copydir(APPROOT."/conf/$sSourceEnv", APPROOT."/conf/$sTargetEnv"); - $this->DeclareExtensionAsRemoved($aExtensionCodesToRemove); - - SetupUtils::copydir(APPROOT."/conf/$sSourceEnv", APPROOT."/conf/$sEnv"); + $this->DeclareExtensionAsRemoved($this->aExtensionsByCode); $sSourceDir = MetaModel::GetConfig()->Get('source_dir'); $aSearchDirs = $this->GetExtraDirsToCompile($sSourceDir); diff --git a/tests/php-unit-tests/unitary-tests/setup/feature_removal/SetupAuditTest.php b/tests/php-unit-tests/unitary-tests/setup/feature_removal/SetupAuditTest.php index f8a31d60e..ec83a13fc 100644 --- a/tests/php-unit-tests/unitary-tests/setup/feature_removal/SetupAuditTest.php +++ b/tests/php-unit-tests/unitary-tests/setup/feature_removal/SetupAuditTest.php @@ -51,8 +51,7 @@ class SetupAuditTest extends ItopCustomDatamodelTestCase public function testComputeDryRemoval() { - $oDryRemovalRuntimeEnvt = new DryRemovalRuntimeEnvironment($this->GetTestEnvironment()); - $oDryRemovalRuntimeEnvt->Prepare($this->GetTestEnvironment(), ['nominal_ext1', 'finalclass_ext2']); + $oDryRemovalRuntimeEnvt = new DryRemovalRuntimeEnvironment($this->GetTestEnvironment(), ['nominal_ext1', 'finalclass_ext2']); $oDryRemovalRuntimeEnvt->CompileFrom($this->GetTestEnvironment()); $oSetupAudit = new SetupAudit(MetaModel::GetEnvironment());