N°7345 Accept DateTime objects for DBObject::Set() calls on AttributeDateTime and children (#618)

This commit is contained in:
Pierre Goiffon
2024-03-12 18:29:55 +01:00
committed by GitHub
parent 6450b52697
commit 27ac1fe276
4 changed files with 81 additions and 22 deletions

View File

@@ -20,9 +20,11 @@
namespace Combodo\iTop\Test\UnitTest\Core;
use Attachment;
use AttributeDateTime;
use Combodo\iTop\Service\Events\EventData;
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
use CoreException;
use DateTime;
use DBObject;
use InvalidExternalKeyValueException;
use lnkContactToFunctionalCI;
@@ -412,7 +414,55 @@ class DBObjectTest extends ItopDataTestCase
$oObject->Set('org_id', 3);
$this->assertDBQueryCount(1, function() use (&$oObject){
static::assertNotEmpty($oObject->Get('org_name'));
}); }
});
}
/**
* @covers AttributeDateTime::MakeRealValue
*/
public function testSetAttributeDateTimeWithTimestamp(): void
{
$oUserRequest = $this->CreateUserRequest(0);
$iNow = time();
$oMyDate = new DateTime('2024-02-14 18:12');
$sMyDate = $oMyDate->format(AttributeDateTime::GetInternalFormat());
// First test string obtained with Get() converts into a standard DateTime object
$oUserRequest->Set('start_date', $iNow);
$sSavedDate = $oUserRequest->Get('start_date');
$oSavedDate = new DateTime($sSavedDate);
$this->assertSame($iNow, $oSavedDate->getTimestamp());
// Second test that string obtained with Get() is of the \AttributeDateTime::GetInternalFormat format
$oUserRequest->Set('start_date', $oMyDate->getTimestamp());
$this->assertEquals($sMyDate, $oUserRequest->Get('start_date'));
}
/**
* @covers AttributeDateTime::MakeRealValue
*/
public function testSetAttributeDateTimeWithString(): void
{
$oUserRequest = $this->CreateUserRequest(0);
$oMyDate = new DateTime('2024-02-14 18:12');
$sMyDate = $oMyDate->format(AttributeDateTime::GetInternalFormat());
$oUserRequest->Set('start_date', $sMyDate);
$this->assertEquals($sMyDate, $oUserRequest->Get('start_date'));
}
/**
* @covers AttributeDateTime::MakeRealValue
*/
public function testSetAttributeDateTimeWithDateTime(): void
{
$oUserRequest = $this->CreateUserRequest(0);
$oMyDate = new DateTime('2024-02-14 18:12');
$sMyDate = $oMyDate->format(AttributeDateTime::GetInternalFormat());
$oUserRequest->Set('start_date', $oMyDate);
$this->assertEquals($sMyDate, $oUserRequest->Get('start_date'));
}
/**
* @group Integration