mirror of
https://github.com/Combodo/iTop.git
synced 2026-03-02 23:54:12 +01:00
81 lines
2.4 KiB
PHP
81 lines
2.4 KiB
PHP
<?php
|
|
|
|
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
|
|
|
|
class DBObjectSetTest extends ItopDataTestCase
|
|
{
|
|
public const USE_TRANSACTION = true;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
parent::setUp(); // TODO: Change the autogenerated stub
|
|
$this->CreateURs();
|
|
}
|
|
|
|
protected function tearDown(): void
|
|
{
|
|
CMDBSource::TriggerExceptionWhenSqlQuery(null);
|
|
parent::tearDown(); // TODO: Change the autogenerated stub
|
|
}
|
|
|
|
private function CreateURs()
|
|
{
|
|
$this->CreateTestOrganization();
|
|
for ($i = 0; $i < 10; $i++) {
|
|
$this->CreateTicket($i);
|
|
}
|
|
}
|
|
|
|
public function testCount()
|
|
{
|
|
$oSearch = DBObjectSearch::FromOQL_AllData("SELECT UserRequest");
|
|
$oSet = new DBObjectSet($oSearch);
|
|
|
|
$iCount = $oSet->Count();
|
|
$oSet->Fetch();
|
|
$this->assertEquals($iCount, $oSet->Count());
|
|
$this->assertEquals($iCount, $oSet->CountWithLimit(0));
|
|
$this->assertTrue($oSet->CountExceeds(0));
|
|
|
|
//no DB SQL query: exception will be raised after here
|
|
CMDBSource::TriggerExceptionWhenSqlQuery(__METHOD__.' :'.__LINE__);
|
|
$this->assertEquals($iCount, $oSet->Count(), 'should use cache and not call DB again');
|
|
}
|
|
|
|
public function testRewind()
|
|
{
|
|
$oSearch = DBObjectSearch::FromOQL_AllData("SELECT UserRequest");
|
|
$oSet = new DBObjectSet($oSearch);
|
|
|
|
while ($oObj = $oSet->Fetch()) {
|
|
$this->assertNotEquals(0, $oObj->GetKey());
|
|
}
|
|
|
|
//no DB SQL query: exception will be raised after here
|
|
CMDBSource::TriggerExceptionWhenSqlQuery(__METHOD__.' :'.__LINE__);
|
|
$oSet->Rewind();
|
|
while ($oObj = $oSet->Fetch()) {
|
|
$this->assertNotEquals(0, $oObj->GetKey());
|
|
}
|
|
}
|
|
|
|
public function testDBObjectSetComparator()
|
|
{
|
|
$oSearch = DBObjectSearch::FromOQL_AllData("SELECT UserRequest");
|
|
$DBObjectSet1 = new DBObjectSet($oSearch);
|
|
$DBObjectSet3 = new DBObjectSet($oSearch);
|
|
$oDBObjectSetComparator = new DBObjectSetComparator($DBObjectSet1, $DBObjectSet3);
|
|
$this->assertTrue($oDBObjectSetComparator->SetsAreEquivalent());
|
|
|
|
$sMsg = __METHOD__.' :'.__LINE__;
|
|
//no DB SQL query: exception will be raised after here
|
|
CMDBSource::TriggerExceptionWhenSqlQuery($sMsg);
|
|
$oDBObjectSetComparator = new DBObjectSetComparator($DBObjectSet1, $DBObjectSet3);
|
|
$this->assertTrue($oDBObjectSetComparator->SetsAreEquivalent());
|
|
|
|
|
|
$oDBObjectSetComparator = new DBObjectSetComparator($DBObjectSet1, new DBObjectSet($oSearch));
|
|
$this->expectExceptionMessage($sMsg, "should call DB again this time");
|
|
$this->assertTrue($oDBObjectSetComparator->SetsAreEquivalent());
|
|
}
|
|
} |