N°9906 Add tests

This commit is contained in:
Timmy38
2026-09-15 11:59:52 +02:00
parent 8bdb7dd03a
commit e0ef950664
2 changed files with 47 additions and 1 deletions

View File

@@ -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;

View File

@@ -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');
}
}