/** * @depends testInit * @param IteratorDecoratorAbstract * @return IteratorDecoratorAbstract */ public function testSetPosition(IteratorDecoratorAbstract $iteratorObject) { $iteratorObject->setItemPosition(2); $this->assertEquals(2, $iteratorObject->getItemPosition()); $this->assertTrue($iteratorObject->valid()); $this->assertEquals(2, $iteratorObject->key()); $this->assertEquals('item3', $iteratorObject->current()); $iteratorObject->setItemPosition(1); $this->assertEquals(1, $iteratorObject->getItemPosition()); $this->assertTrue($iteratorObject->valid()); $this->assertEquals(1, $iteratorObject->key()); $this->assertEquals('item2', $iteratorObject->current()); $iteratorObject->setItemPosition(0); $this->assertEquals(0, $iteratorObject->getItemPosition()); $this->assertTrue($iteratorObject->valid()); $this->assertEquals(0, $iteratorObject->key()); $this->assertEquals('item1', $iteratorObject->current()); $iteratorObject->setItemPosition(2); $this->assertEquals(2, $iteratorObject->getItemPosition()); $this->assertTrue($iteratorObject->valid()); $this->assertEquals(2, $iteratorObject->key()); $this->assertEquals('item3', $iteratorObject->current()); $iteratorObject->setItemPosition(0); $this->assertEquals(0, $iteratorObject->getItemPosition()); $this->assertTrue($iteratorObject->valid()); $this->assertEquals(0, $iteratorObject->key()); $this->assertEquals('item1', $iteratorObject->current()); return $iteratorObject; }
/** * return true if current item is valid * * @return bool current item is valid */ public function valid() { if ($this->getItemPosition() >= $this->getItemOffset() && $this->getItemPosition() < $this->getItemOffset() + $this->getItemCount()) { return parent::valid(); } return false; }