/** * @covers \PHP\Manipulator\TokenContainer\Iterator */ public function testIterator() { $container = $this->getTestContainerWithHoles(); $iterator = new Iterator($container); $this->assertTrue($iterator->valid()); $this->assertSame($container[0], $iterator->current()); $this->assertEquals(0, $iterator->key(), 'Wrong key'); $iterator->next(); $this->assertTrue($iterator->valid()); $this->assertSame($container[2], $iterator->current()); $this->assertEquals(2, $iterator->key(), 'Wrong key'); $iterator->next(); $this->assertTrue($iterator->valid()); $this->assertSame($container[4], $iterator->current()); $this->assertEquals(4, $iterator->key(), 'Wrong key'); $iterator->next(); $this->assertTrue($iterator->valid()); $this->assertSame($container[5], $iterator->current()); $this->assertEquals(5, $iterator->key(), 'Wrong key'); $iterator->next(); $this->assertTrue($iterator->valid()); $this->assertSame($container[6], $iterator->current()); $this->assertEquals(6, $iterator->key(), 'Wrong key'); $iterator->next(); $this->assertFalse($iterator->valid()); $iterator->previous(); $this->assertTrue($iterator->valid()); $this->assertSame($container[6], $iterator->current()); $this->assertEquals(6, $iterator->key(), 'Wrong key'); $iterator->previous(); $this->assertTrue($iterator->valid()); $this->assertSame($container[5], $iterator->current()); $this->assertEquals(5, $iterator->key(), 'Wrong key'); $iterator->previous(); $this->assertTrue($iterator->valid()); $this->assertSame($container[4], $iterator->current()); $this->assertEquals(4, $iterator->key(), 'Wrong key'); $iterator->previous(); $this->assertTrue($iterator->valid()); $this->assertSame($container[2], $iterator->current()); $this->assertEquals(2, $iterator->key(), 'Wrong key'); $iterator->previous(); $this->assertTrue($iterator->valid()); $this->assertSame($container[0], $iterator->current()); $this->assertEquals(0, $iterator->key(), 'Wrong key'); $iterator->previous(); $this->assertFalse($iterator->valid()); $iterator->rewind(); $this->assertTrue($iterator->valid()); $this->assertSame($container[0], $iterator->current()); $this->assertEquals(0, $iterator->key(), 'Wrong key'); }