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()); } }