test SDK enhancement: be able to compare moduleinstallation

ci: add log and hopefully fix hub test

ci: fix all test that rely on CustomDataTC
This commit is contained in:
odain
2025-12-30 16:39:25 +01:00
parent 83973d102f
commit f2e682c07c
3 changed files with 75 additions and 0 deletions

View File

@@ -2,6 +2,7 @@
namespace Combodo\iTop\Test\UnitTest\HubConnector;
use Combodo\iTop\DBTools\Service\DBToolsUtils;
use Combodo\iTop\HubConnector\Controller\HubController;
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
use DOMFormatException;
@@ -45,6 +46,7 @@ class HubControllerTest extends ItopDataTestCase
$this->testLaunchCompile();
HubController::GetInstance()->LaunchDeploy();
$this->CheckReport('{"code":0,"message":"Compilation successful.","fields":[]}');
$this->CompareCurrentAndPreviousModuleInstallations();
}
private function CheckReport($sExpected)

View File

@@ -17,6 +17,7 @@ namespace Combodo\iTop\Test\UnitTest;
use ArchivedObjectException;
use CMDBObject;
use CMDBSource;
use Combodo\iTop\DBTools\Service\DBToolsUtils;
use Combodo\iTop\Service\Events\EventService;
use Config;
use Contact;
@@ -1556,4 +1557,32 @@ abstract class ItopDataTestCase extends ItopTestCase
@chmod($sConfigPath, 0440);
@unlink($this->sConfigTmpBackupFile);
}
public function CompareCurrentAndPreviousModuleInstallations()
{
$this->RequireOnceItopFile('env-production/combodo-db-tools/src/Service/DBToolsUtils.php');
$aPreviousInstallations = DBToolsUtils::GetPreviousModuleInstallationsByOffset(1);
$aInstallations = DBToolsUtils::GetPreviousModuleInstallationsByOffset();
$this->assertEquals($this->KeepModuleInstallationComparableFields($aPreviousInstallations), $this->KeepModuleInstallationComparableFields($aInstallations));
}
public function KeepModuleInstallationComparableFields($aInstallations): array
{
$aRes = [];
$aIgnoredFields = ['id', 'parent_id', 'installed', 'comment'];
foreach ($aInstallations as $aData) {
$aNewData = [];
foreach ($aData as $sKey => $val) {
if (in_array($sKey, $aIgnoredFields)) {
continue;
}
$aNewData[$sKey] = $val;
}
$sName = $aNewData['name'];
$aRes[$sName] = $aNewData;
}
asort($aRes);
return $aRes;
}
}