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.');
 }
示例#2
0
 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);
 }
示例#3
0
 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));
 }