public function testGetIterator() { $list = new PaginatedList(new ArrayList(array(new DataObject(array('Num' => 1)), new DataObject(array('Num' => 2)), new DataObject(array('Num' => 3)), new DataObject(array('Num' => 4)), new DataObject(array('Num' => 5))))); $list->setPageLength(2); $this->assertDOSEquals(array(array('Num' => 1), array('Num' => 2)), $list->getIterator()); $list->setCurrentPage(2); $this->assertDOSEquals(array(array('Num' => 3), array('Num' => 4)), $list->getIterator()); $list->setCurrentPage(3); $this->assertDOSEquals(array(array('Num' => 5)), $list->getIterator()); $list->setCurrentPage(999); $this->assertDOSEquals(array(), $list->getIterator()); $players = DataObjectTest_Player::get(); $list = new PaginatedList($players); $list->setPageLength(1); $list->getIterator(); $this->assertEquals(4, $list->getTotalItems(), 'Getting an iterator should not trim the list to the page length.'); }
public function testFilterOnImplicitJoin() { // Many to many $list = DataObjectTest_Team::get()->filter('Players.FirstName', array('Captain', 'Captain 2')); $this->assertEquals(2, $list->count()); // Has many $list = DataObjectTest_Team::get()->filter('Comments.Name', array('Joe', 'Phil')); $this->assertEquals(2, $list->count()); // Has one $list = DataObjectTest_Player::get()->filter('FavouriteTeam.Title', 'Team 1'); $this->assertEquals(1, $list->count()); $this->assertEquals('007', $list->first()->ShirtNumber); }
public function testLateStaticBindingStyle() { // Confirm that DataObjectTest_Player::get() operates as excepted $this->assertEquals(4, DataObjectTest_Player::get()->Count()); $this->assertInstanceOf('DataObjectTest_Player', DataObjectTest_Player::get()->First()); // You can't pass arguments to LSB syntax - use the DataList methods instead. $this->setExpectedException('InvalidArgumentException'); DataObjectTest_Player::get(null, "\"ID\" = 1"); }
public function testRemoveAll() { $first = new DataObjectTest_Team(); $first->write(); $second = new DataObjectTest_Team(); $second->write(); $firstPlayers = $first->Players(); $secondPlayers = $second->Players(); $a = new DataObjectTest_Player(); $a->ShirtNumber = 'a'; $a->write(); $b = new DataObjectTest_Player(); $b->ShirtNumber = 'b'; $b->write(); $firstPlayers->add($a); $firstPlayers->add($b); $secondPlayers->add($a); $secondPlayers->add($b); $this->assertEquals(array('a', 'b'), $firstPlayers->sort('ShirtNumber')->column('ShirtNumber')); $this->assertEquals(array('a', 'b'), $secondPlayers->sort('ShirtNumber')->column('ShirtNumber')); $firstPlayers->removeAll(); $this->assertEquals(0, count($firstPlayers)); $this->assertEquals(2, count($secondPlayers)); $firstPlayers->removeAll(); $firstPlayers->add($a); $firstPlayers->add($b); $this->assertEquals(array('a', 'b'), $firstPlayers->sort('ShirtNumber')->column('ShirtNumber')); $firstPlayers->filter('ShirtNumber', 'b')->removeAll(); $this->assertEquals(array('a'), $firstPlayers->column('ShirtNumber')); $this->assertEquals(array('a', 'b'), $secondPlayers->sort('ShirtNumber')->column('ShirtNumber')); $this->assertNotNull(DataObjectTest_Player::get()->byID($a->ID)); $this->assertNotNull(DataObjectTest_Player::get()->byID($b->ID)); }