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

This commit is contained in:
Pierre Goiffon
2023-03-10 16:25:58 +01:00

View File

@@ -4,7 +4,10 @@ namespace Combodo\iTop\Test\UnitTest\Core;
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
use ContextTag;
use Exception;
use IssueLog;
use MetaModel;
use Person;
use TriggerOnObjectCreate;
/**
@@ -16,7 +19,6 @@ use TriggerOnObjectCreate;
* @preserveGlobalState disabled
* @backupGlobals disabled
*/
class TriggerTest extends ItopDataTestCase
{
const USE_TRANSACTION = false;
@@ -42,20 +44,16 @@ class TriggerTest extends ItopDataTestCase
public function testEnrichRaisedException_Trigger()
{
$oTrigger = MetaModel::NewObject('TriggerOnObjectCreate');
try
{
try
{
try {
try {
MetaModel::NewObject('Toto');
}
catch (\Exception $e)
{
catch (\Exception $e) {
\utils::EnrichRaisedException($oTrigger, $e);
}
$this->assertTrue(false, "An exception should have been thrown");
}
catch(\CoreException $e1)
{
catch (\CoreException $e1) {
$this->assertEquals('CoreException', get_class($e1));
$this->assertEquals('Unknown class \'Toto\' (<b title="Trigger">TriggerOnObjectCreate</b>::-1 ()<br/>)', $e1->getMessage());
@@ -67,8 +65,8 @@ class TriggerTest extends ItopDataTestCase
public function NoEnrichmentProvider()
{
return [
[ null ],
[ new NonCmdbAbstractObject() ],
[null],
[new NonCmdbAbstractObject()],
] ;
}
@@ -78,23 +76,52 @@ class TriggerTest extends ItopDataTestCase
*/
public function testEnrichRaisedException_NoEnrichment($oCmdbAbstract)
{
try
{
try
{
try {
try {
MetaModel::NewObject('CoreException');
}
catch (\Exception $e)
{
catch (\Exception $e) {
\utils::EnrichRaisedException($oCmdbAbstract, $e);
}
$this->assertTrue(false, "An exception should have been thrown");
}
catch(\Exception $e1)
{
catch (\Exception $e1) {
$this->assertEquals($e, $e1);
}
}
public function testLogException()
{
$sTestLogPath = APPROOT.'log/TriggerTest__testLogException.log';
IssueLog::Enable($sTestLogPath);
try {
$oPerson1 = MetaModel::GetObject(Person::class, 1, true);
$sExceptionMessage = 'My test exception message';
$oException = new Exception($sExceptionMessage);
/** @var TriggerOnObjectCreate $oTrigger */
$oTrigger = MetaModel::NewObject(TriggerOnObjectCreate::class, [
'description' => 'my trigger description',
]);
$oTrigger->DBWrite();
$oTrigger->LogException($oException, $oPerson1);
$sTestLogFileContent = file_get_contents($sTestLogPath);
$this->assertContains('A trigger did throw an exception', $sTestLogFileContent);
$this->assertContains($oPerson1->GetKey(), $sTestLogFileContent);
/** @noinspection GetClassUsageInspection */
$this->assertContains(get_class($oPerson1), $sTestLogFileContent);
$this->assertContains($oPerson1->GetRawName(), $sTestLogFileContent);
$this->assertContains($sExceptionMessage, $sTestLogFileContent);
}
finally {
IssueLog::Enable(APPROOT.'log/error.log');
}
}
}
class NonCmdbAbstractObject{