/** * @test */ function iterateOverNamedElements() { $reader = new XMLReaderStub('<r><a>1</a><a>2</a><b>c</b><a>3</a></r>'); $it = new XMLElementIterator($reader, 'a'); $this->assertEquals(null, $it->valid()); $it->rewind(); $this->assertEquals(true, $it->valid()); $this->assertEquals('a', $it->current()->getName()); $it->next(); $this->assertEquals('a', $it->current()->getName()); $it->next(); $this->assertEquals('a', $it->current()->getName()); $this->assertEquals('3', $it); $it->next(); $this->assertEquals(false, $it->valid()); }
public function valid() { if (!($valid = parent::valid())) { return $valid; } return $this->reader->depth > $this->stopDepth; }