From 903de4358982970028aaa4ac3678c7c95deb48ff Mon Sep 17 00:00:00 2001 From: acognet Date: Wed, 27 Oct 2021 14:01:46 +0200 Subject: [PATCH] =?UTF-8?q?N=C2=B04402=20-=20DbObject::ListPreviousValuesF?= =?UTF-8?q?orUpdatedAttributes()=20returns=20new=20values=20for=20=5Flist-?= =?UTF-8?q?attributes=20(at=20least=20in=20DbObject::AfterUpdate())=20Add?= =?UTF-8?q?=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/core/ormLinkSetTest.php | 99 ++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/test/core/ormLinkSetTest.php b/test/core/ormLinkSetTest.php index e72a8442d..890faa0d4 100644 --- a/test/core/ormLinkSetTest.php +++ b/test/core/ormLinkSetTest.php @@ -274,4 +274,103 @@ class ormLinkSetTest extends ItopDataTestCase $oContactsSet = $oServer->Get('contacts_list'); static::assertEquals(3, $oContactsSet->Count()); } + + /** + * don't work cf bug N°4402 + * @throws Exception + */ + /*public function testListPreviousValuesForUpdatedAttributes_AttributeLinkedSetIndirect() + { + $oServer = $this->CreateServer(1); + $oPerson = $this->CreatePerson(0); + $this->AddContactToCI($oPerson, $oServer); + + $oServer->DBUpdate(); + $this->ReloadObject($oServer); + + $oPerson = $this->CreatePerson(1); + $this->AddContactToCI($oPerson, $oServer); + + $oServer->DBUpdate(); + $oSetOldFcisList = $oServer->ListPreviousValuesForUpdatedAttributes()['contacts_list']->ToDBObjectSet(); + + static::assertEquals(1, $oSetOldFcisList->Count()); + }*/ + + + /** + * @throws Exception + */ + public function testListPreviousValuesForUpdatedAttributes_AttributeString() + { + $oServer = $this->CreateServer(1); + $oServer->Set('analysis', 'my analysis'); + $oServer->DBUpdate(); + static::assertEquals('', $oServer->ListPreviousValuesForUpdatedAttributes()['analysis']); + + $this->ReloadObject($oServer); + $oServer->Set('analysis', 'my analysis2'); + $oServer->DBUpdate(); + static::assertEquals('my analysis', $oServer->ListPreviousValuesForUpdatedAttributes()['analysis']); + + } + /** + * @throws Exception + */ + public function testListPreviousValuesForUpdatedAttributes_AttributeExternalKey() + { + $oServer = $this->CreateServer(1); + $idOrgInit = $oServer->Get('org_id'); + + $oOrganization = $this->CreateOrganization(1); + $oServer->Set('org_id',$oOrganization); + $oServer->DBUpdate(); + static::assertEquals($idOrgInit, $oServer->ListPreviousValuesForUpdatedAttributes()['org_id']); + static::assertNotEquals($oOrganization->GetKey(), $oServer->ListPreviousValuesForUpdatedAttributes()['org_id']); + static::assertEquals($oOrganization->GetKey(), $oServer->Get('org_id')); + } + /** + * don't work cf bug N°4402 + * @throws Exception + */ + /*public function testListPreviousValuesForUpdatedAttributes_AttributeExternalField() + { + $oServer = $this->CreateServer(1); + $OrgInit = $oServer->Get('organization_name'); + + $oOrganization = $this->CreateOrganization('Serv1'); + $oServer->Set('org_id',$oOrganization); + $oServer->DBUpdate(); + //static::assertEquals($OrgInit, json_encode($oServer->ListPreviousValuesForUpdatedAttributes())); + static::assertEquals($OrgInit, $oServer->ListPreviousValuesForUpdatedAttributes()['organization_name']); + static::assertNotEquals($oOrganization->Get('name'), $oServer->ListPreviousValuesForUpdatedAttributes()['organization_name']); + static::assertEquals($oOrganization->Get('name'), $oServer->Get('organization_name')); + }*/ + + /** + * don't work cf bug N°4402 + * @throws Exception + */ + /*public function testListPreviousValuesForUpdatedAttributes_AttributeLinkedSet() + { + $oServer = $this->CreateServer(1); + $oPhysicalInterface = $this->CreatePhysicalInterface(1, 1000, $oServer->GetKey()); + $this->debug("Created PhysicalInterface {$oPhysicalInterface->GetName()} ({$oPhysicalInterface->GetKey()})"); + $oServer->DBUpdate(); + $this->ReloadObject($oServer); + $this->debug("Nb PhysicalInterface".$oServer->Get('physicalinterface_list')->Count()); + $oPhysicalInterface2 = $this->CreatePhysicalInterface(2, 1000, $oServer->GetKey()); + $this->debug("Created PhysicalInterface {$oPhysicalInterface2->GetName()} ({$oPhysicalInterface2->GetKey()})"); + $oServer->DBUpdate(); + $oSetOldFcisList=$oServer->Get('physicalinterface_list')->ToDBObjectSet(); + while ($oObject = $oSetOldFcisList->Fetch()) + { + $this->debug("PI: ".get_class($oObject).": ".$oObject->GetKey()); + } + $this->debug("Nb PhysicalInterface".$oServer->Get('physicalinterface_list')->Count()); + //$oSetOldFcisList = $oServer->ListPreviousValuesForUpdatedAttributes()['physicalinterface_list']->ToDBObjectSet(); + + static::assertEquals(1, $oSetOldFcisList->Count()); + }*/ + }