From e0ef950664d336d01f155dd37f46ffa8ba89005e Mon Sep 17 00:00:00 2001 From: Timmy38 Date: Tue, 15 Sep 2026 11:59:52 +0200 Subject: [PATCH] =?UTF-8?q?N=C2=B09906=20Add=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataFeatureRemovalController.php | 2 +- .../DataFeatureControllerTest.php | 46 +++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) 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 bdfecdf049..c7c6cec2c0 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 @@ -420,7 +420,7 @@ class DataFeatureRemovalController extends Controller return true; } - private function GetBasePackageModules(): array + public function GetBasePackageModules(): array { if ($this->aBasePackageModules !== null) { return $this->aBasePackageModules; diff --git a/tests/php-unit-tests/unitary-tests/datamodels/2.x/combodo-data-feature-removal/DataFeatureControllerTest.php b/tests/php-unit-tests/unitary-tests/datamodels/2.x/combodo-data-feature-removal/DataFeatureControllerTest.php index 2c1de6c9db..3e691e5942 100644 --- a/tests/php-unit-tests/unitary-tests/datamodels/2.x/combodo-data-feature-removal/DataFeatureControllerTest.php +++ b/tests/php-unit-tests/unitary-tests/datamodels/2.x/combodo-data-feature-removal/DataFeatureControllerTest.php @@ -9,6 +9,7 @@ namespace Combodo\iTop\Test\UnitTest\Module\DataFeatureRemoval\Service; use Combodo\iTop\DataFeatureRemoval\Controller\DataFeatureRemovalController; use Combodo\iTop\Test\UnitTest\ItopDataTestCase; +use iTopExtension; /** * @see DataFeatureController @@ -32,4 +33,49 @@ class DataFeatureControllerTest extends ItopDataTestCase $expected = '{"0":"itop-container-mgmt","1":"combodo-monitoring"}'; $this->assertEquals($expected, $this->InvokeNonPublicMethod(DataFeatureRemovalController::class, 'ConvertIntoSetupFormat', $oController, [ $aExtensions])); } + + public function testGetBasePackageModules() + { + $oController = new DataFeatureRemovalController(); + $aModules = $oController->GetBasePackageModules(); + $this->assertNotEmpty($aModules); + $this->assertContains('itop-structure', $aModules); + $this->assertContains('authent-local', $aModules); + $this->assertContains('itop-backup', $aModules); + $this->assertContains('itop-tickets', $aModules); + + } + + public function testIsIncludedInPackage() + { + $oController = $this->getMockBuilder(DataFeatureRemovalController::class) + ->onlyMethods(['GetBasePackageModules']) + ->getMock(); + $oController->method('GetBasePackageModules')->willReturn([ + 'itop-structure', + 'authent-local', + 'itop-backup', + 'itop-tickets', + ]); + + $oIncludedExtension = new iTopExtension(); + $oIncludedExtension->sSource = iTopExtension::SOURCE_MANUAL; + $oIncludedExtension->aModules = ['itop-structure', 'authent-local']; + $this->assertTrue($oController->IsIncludedInPackage($oIncludedExtension), 'IsIncludedInPackage should return true if all modules are included in the base package'); + + $oNotIncludedExtension = new iTopExtension(); + $oNotIncludedExtension->sSource = iTopExtension::SOURCE_MANUAL; + $oNotIncludedExtension->aModules = ['itop-structure', 'combodo-non-existing-module']; + $this->assertFalse($oController->IsIncludedInPackage($oNotIncludedExtension), 'IsIncludedInPackage should return false if at least one of its modules is not included in the base package'); + + $oEmptyExtension = new iTopExtension(); + $oEmptyExtension->sSource = iTopExtension::SOURCE_MANUAL; + $oEmptyExtension->aModules = []; + $this->assertFalse($oController->IsIncludedInPackage($oEmptyExtension), 'IsIncludedInPackage should return false if the extension has no modules'); + + $oPackageExtension = new iTopExtension(); + $oPackageExtension->sSource = iTopExtension::SOURCE_WIZARD; + $oPackageExtension->aModules = ['itop-structure', 'authent-local']; + $this->assertFalse($oController->IsIncludedInPackage($oPackageExtension), 'IsIncludedInPackage should return false if the extension is a package extension'); + } }