Merge remote-tracking branch 'origin/support/3.1' into develop

This commit is contained in:
Pierre Goiffon
2023-07-18 14:17:58 +02:00

View File

@@ -180,7 +180,7 @@ class BulkChangeExtKeyTest extends ItopDataTestCase {
); );
$this->performBulkChangeTest( $this->performBulkChangeTest(
"invalid value for attribute", "Invalid value for attribute",
"Ambiguous: found 2 objects", "Ambiguous: found 2 objects",
null, null,
$bIsRackReconKey, $bIsRackReconKey,
@@ -206,8 +206,7 @@ class BulkChangeExtKeyTest extends ItopDataTestCase {
$aCsvData = [["UnexistingRackDescription"]]; $aCsvData = [["UnexistingRackDescription"]];
$aExtKeys = ["org_id" => ["name" => 0], "rack_id" => ["name" => 1, "description" => 3]]; $aExtKeys = ["org_id" => ["name" => 0], "rack_id" => ["name" => 1, "description" => 3]];
$sSearchLinkUrl = 'UI.php?operation=search&filter=%5B%22SELECT+%60Rack%60+FROM+Rack+AS+%60Rack%60+WHERE+%28%28%60Rack%60.%60name%60+%3D+%3Aname%29+AND+%28%60Rack%60.%60description%60+%3D+%3Adescription%29%29%22%2C%7B%22name%22%3A%22UnexistingRack%22%2C%22description%22%3A%22UnexistingRackDescription%22%7D%2C%5B%5D%5D' $sSearchLinkUrl = 'UI.php?operation=search&filter='.\rawurlencode('%5B%22SELECT+%60Rack%60+FROM+Rack+AS+%60Rack%60+WHERE+%28%28%60Rack%60.%60name%60+%3D+%3Aname%29+AND+%28%60Rack%60.%60description%60+%3D+%3Adescription%29%29%22%2C%7B%22name%22%3A%22UnexistingRack%22%2C%22description%22%3A%22UnexistingRackDescription%22%7D%2C%5B%5D%5D');
;
$this->performBulkChangeTest( $this->performBulkChangeTest(
"No match for value 'UnexistingRack UnexistingRackDescription'", "No match for value 'UnexistingRack UnexistingRackDescription'",
"Some possible 'Rack' value(s): RackTest1 RackTest1Desc, RackTest2 RackTest2Desc, RackTest3 RackTest3Desc...", "Some possible 'Rack' value(s): RackTest1 RackTest1Desc, RackTest2 RackTest2Desc, RackTest3 RackTest3Desc...",
@@ -238,7 +237,7 @@ class BulkChangeExtKeyTest extends ItopDataTestCase {
public function performBulkChangeTest($sExpectedDisplayableValue, $sExpectedDescription, $oOrg, $bIsRackReconKey, public function performBulkChangeTest($sExpectedDisplayableValue, $sExpectedDescription, $oOrg, $bIsRackReconKey,
$aAdditionalCsvData=null, $aExtKeys=null, $sSearchLinkUrl=null, $sError="Object not found") { $aAdditionalCsvData=null, $aExtKeys=null, $sSearchLinkUrl=null, $sError="Object not found") {
if ($sSearchLinkUrl===null){ if ($sSearchLinkUrl===null){
$sSearchLinkUrl = 'UI.php?operation=search&filter=%5B%22SELECT+%60Rack%60+FROM+Rack+AS+%60Rack%60+WHERE+%28%60Rack%60.%60name%60+%3D+%3Aname%29%22%2C%7B%22name%22%3A%22UnexistingRack%22%7D%2C%5B%5D%5D'; $sSearchLinkUrl = 'UI.php?operation=search&filter='.rawurlencode('%5B%22SELECT+%60Rack%60+FROM+Rack+AS+%60Rack%60+WHERE+%28%60Rack%60.%60name%60+%3D+%3Aname%29%22%2C%7B%22name%22%3A%22UnexistingRack%22%7D%2C%5B%5D%5D');
} }
if (is_null($oOrg)){ if (is_null($oOrg)){
$iOrgId = $this->getTestOrgId(); $iOrgId = $this->getTestOrgId();
@@ -285,12 +284,14 @@ class BulkChangeExtKeyTest extends ItopDataTestCase {
CMDBSource::Query('START TRANSACTION'); CMDBSource::Query('START TRANSACTION');
//change value during the test try {
$db_core_transactions_enabled=MetaModel::GetConfig()->Get('db_core_transactions_enabled');
MetaModel::GetConfig()->Set('db_core_transactions_enabled',false);
$this->debug("aCsvData:".json_encode($aCsvData[0])); //change value during the test
$this->debug("aReconcilKeys:". var_export($aReconcilKeys)); $db_core_transactions_enabled = MetaModel::GetConfig()->Get('db_core_transactions_enabled');
MetaModel::GetConfig()->Set('db_core_transactions_enabled', false);
$this->debug("aCsvData:" . json_encode($aCsvData[0]));
$this->debug("aReconcilKeys:" . var_export($aReconcilKeys));
$oBulk = new \BulkChange( $oBulk = new \BulkChange(
"Server", "Server",
$aCsvData, $aCsvData,
@@ -313,32 +314,35 @@ class BulkChangeExtKeyTest extends ItopDataTestCase {
foreach ($aRes as $aRow) { foreach ($aRes as $aRow) {
if (array_key_exists('__STATUS__', $aRow)) { if (array_key_exists('__STATUS__', $aRow)) {
$sStatus = $aRow['__STATUS__']; $sStatus = $aRow['__STATUS__'];
$this->debug("sStatus:".$sStatus->GetDescription()); $this->debug("sStatus:" . $sStatus->GetDescription());
$this->assertEquals($aResult["__STATUS__"], $sStatus->GetDescription()); $this->assertEquals($aResult["__STATUS__"], $sStatus->GetDescription());
foreach ($aRow as $i => $oCell) { foreach ($aRow as $i => $oCell) {
if ($i != "finalclass" && $i != "__STATUS__" && $i != "__ERRORS__") { if ($i != "finalclass" && $i != "__STATUS__" && $i != "__ERRORS__") {
$this->debug("i:".$i); $this->debug("i:" . $i);
$this->debug('GetDisplayableValue:'.$oCell->GetDisplayableValue()); $this->debug('GetDisplayableValue:' . $oCell->GetDisplayableValue());
if (array_key_exists($i,$aResult)) { if (array_key_exists($i, $aResult)) {
$this->debug("aResult:".var_export($aResult[$i])); $this->debug("aResult:" . var_export($aResult[$i]));
if ($oCell instanceof \CellStatus_SearchIssue || if ($oCell instanceof \CellStatus_SearchIssue ||
$oCell instanceof \CellStatus_Ambiguous) { $oCell instanceof \CellStatus_Ambiguous) {
$this->assertEquals($aResult[$i][0], $oCell->GetDisplayableValue(), $this->assertEquals($aResult[$i][0], $oCell->GetDisplayableValue(),
"failure on ".get_class($oCell).' cell type'); "failure on " . get_class($oCell) . ' cell type');
$this->assertEquals($sSearchLinkUrl, $oCell->GetSearchLinkUrl(), $this->assertEquals($sSearchLinkUrl, $oCell->GetSearchLinkUrl(),
"failure on ".get_class($oCell).' cell type'); "failure on " . get_class($oCell) . ' cell type');
$this->assertEquals($aResult[$i][1], $oCell->GetDescription(), $this->assertEquals($aResult[$i][1], $oCell->GetDescription(),
"failure on ".get_class($oCell).' cell type'); "failure on " . get_class($oCell) . ' cell type');
} }
} }
} else if ($i === "__ERRORS__") { } else if ($i === "__ERRORS__") {
$sErrors = array_key_exists("__ERRORS__", $aResult) ? $aResult["__ERRORS__"] : ""; $sErrors = array_key_exists("__ERRORS__", $aResult) ? $aResult["__ERRORS__"] : "";
$this->assertEquals( $sErrors, $oCell->GetDescription()); $this->assertEquals($sErrors, $oCell->GetDescription());
} }
} }
$this->assertEquals( $aResult[0], $aRow[0]->GetDisplayableValue()); $this->assertEquals($aResult[0], $aRow[0]->GetDisplayableValue());
} }
} }
MetaModel::GetConfig()->Set('db_core_transactions_enabled',$db_core_transactions_enabled); MetaModel::GetConfig()->Set('db_core_transactions_enabled', $db_core_transactions_enabled);
} finally {
CMDBSource::Query('ROLLBACK');
}
} }
} }