This commit is contained in:
Anne-Cath
2026-03-05 13:59:38 +01:00
parent 93bdb6b9f7
commit 872f757213
2 changed files with 52 additions and 65 deletions

View File

@@ -340,69 +340,4 @@ PHP
$oAttribute->SetHostClass($sHostClass);
return $oAttribute;
}
public function DisplayThresholdInNotificationProvider(): array
{
$iTime = time();
$oDateTime = new DateTime();
$oDateTime->setTimestamp($iTime - 200);
$sDate = $oDateTime->format("Y-m-d H:i:s");
// Note: This is test is not great as we are datamodel dependent and don't have a class with all the attribute types
return [
'GetHtml' => [
'ttr_escalation_deadline',
'html', // no default value on this field
$iTime,
'Missed by 3 min',
],
'GetLabel' => [
'ttr_escalation_deadline',
'label', // no default value on this field
$iTime,
$sDate,
],
'GetText' => [
'ttr_escalation_deadline',
'text', // no default value on this field
$iTime,
'Missed by 3 min',
],
'Get' => [
'ttr_escalation_deadline',
'', // no default value on this field
$iTime,
$iTime - 200,
],
];
}
/**
* @dataProvider DisplayThresholdInNotificationProvider
*
* @param string $sAttCode
* @param string $sVerb
* @param string $sExpectedValue
*
* @return void
*/
public function testDisplayThresholdInNotification($sAttCode, $sVerb, $iTime, $sExpectedValue)
{
$aUserRequestCustomParams = [
'title' => "Test DisplayStopwatch",
];
$oUserRequest = $this->CreateUserRequest(456, $aUserRequestCustomParams);
$oAttDef = MetaModel::GetAttributeDef(get_class($oUserRequest), $sAttCode);
$iStartDate = $iTime - 200;
$oStopwatch = $oUserRequest->Get('ttr');
$oStopwatch->DefineThreshold(100, $iStartDate);
$oUserRequest->Set('ttr', $oStopwatch);
$value = $oUserRequest->Get('ttr_escalation_deadline');
//$sRet = $oAttDef->GetAsPlainText($value, $oUserRequest);
$sRet = $oAttDef->GetForTemplate($oUserRequest->Get($sAttCode), $sVerb, $oUserRequest);
self::assertEquals($sExpectedValue, $sRet);
}
}

View File

@@ -0,0 +1,52 @@
<?php
namespace Combodo\iTop\Test\UnitTest\Core;
use AttributeDate;
use AttributeDateTime;
use Change;
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
use DateTime;
use MetaModel;
use UserRequest;
class AttributeSubItemTest extends ItopDataTestCase
{
public const CREATE_TEST_ORG = true;
/**
* @param string $sAttCode
* @param string $sVerb
* @param string $sExpectedValue
*
* @return void
*/
public function testGetForTemplate()
{
$aUserRequestCustomParams = [
'title' => "Test DisplayStopwatch",
];
$oUserRequest = $this->CreateUserRequest(456, $aUserRequestCustomParams);
$iStartDate = time() - 200;
$oStopwatch = $oUserRequest->Get('ttr');
$oStopwatch->DefineThreshold(100, $iStartDate);
$oUserRequest->Set('ttr', $oStopwatch);
$sValue = $oUserRequest->Get('ttr_escalation_deadline');
$oAttDef = MetaModel::GetAttributeDef(get_class($oUserRequest), 'ttr_escalation_deadline');
/* self::assertEquals('Missed by 3 min', MetaModel::ApplyParams('$this->title$', ['this' => $oUserRequest]));
self::assertEquals('Missed by 3 min', MetaModel::ApplyParams('$this->ttr_escalation_deadline$', ['this' => $oUserRequest]));
self::assertEquals('Missed by 3 min', MetaModel::ApplyParams('$this->html(ttr_escalation_deadline)$', ['this' => $oUserRequest]));*/
self::assertEquals('Missed by 3 min', $oAttDef->GetForTemplate($sValue, 'html', $oUserRequest));
$oDateTime = new DateTime();
$oDateTime->setTimestamp($iStartDate);
$sDate = $oDateTime->format(AttributeDateTime::GetFormat());
self::assertEquals($sDate, $oAttDef->GetForTemplate($sValue, 'label', $oUserRequest));
self::assertEquals('Missed by 3 min', $oAttDef->GetForTemplate($sValue, 'text', $oUserRequest));
self::assertEquals($iStartDate, $oAttDef->GetForTemplate($sValue, '', $oUserRequest));
}
}