Files
iTop/tests/php-unit-tests/unitary-tests/core/EventIssueTest.php

69 lines
1.7 KiB
PHP

<?php
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
class EventIssueTest extends ItopDataTestCase
{
/**
* Data provider for test EventIssue Creation
*
* @return array data
* @since 3.1.2 N°3448 - Framework field size check not correctly implemented for multi-bytes languages/strings
*/
public function OnInsertProvider()
{
return [
'all with ééé' => [
str_repeat('é', 120),
str_repeat('é', 120),
str_repeat('é', 120),
str_repeat('é', 120),
],
'all with 255 smiley' => [
str_repeat('😎', 255),
str_repeat('😎', 255),
str_repeat('😎', 255),
str_repeat('😎', 255),
],
'all with 255 characters, us-ascii only' => [
str_repeat('a', 255),
str_repeat('a', 255),
str_repeat('a', 255),
str_repeat('a', 255),
],
'all with 255 é' => [
str_repeat('é', 255),
str_repeat('é', 255),
str_repeat('é', 255),
str_repeat('é', 255),
],
];
}
/**
* EventIssue has a OnInsert override that uses mb_strlen, so we need to test this specific case
*
* @covers EventIssue::OnInsert
*
* @dataProvider OnInsertProvider
*
* @since 3.1.2 N°3448 - Framework field size check not correctly implemented for multi-bytes languages/strings
*/
public function testOnInsert(string $sIssue, string $sImpact, string $sPage, string $sMessage)
{
$oEventIssue = MetaModel::NewObject('EventIssue', [
'issue' => $sIssue,
'impact' => $sImpact,
'page' => $sPage,
'message' => $sMessage,
]);
try {
$oEventIssue->DBInsert();
}
catch (CoreException $e) {
$this->fail('we should be able to persist the object though it contains long values in its attributes');
}
$this->assertTrue(true);
}
}