/** * Tests the `ArrayAccess` interface implementation for traversing values. * * @return void */ public function testArrayAccessTraversalMethods() { $collection = new Collection(array('data' => array('foo', 'bar', 'baz' => 'dib'))); $this->assertEqual('foo', $collection->current()); $this->assertEqual('bar', $collection->next()); $this->assertEqual('foo', $collection->prev()); $this->assertEqual('bar', $collection->next()); $this->assertEqual('dib', $collection->next()); $this->assertEqual('baz', $collection->key()); $this->assertTrue($collection->valid()); $this->assertFalse($collection->next()); $this->assertFalse($collection->valid()); $this->assertEqual('foo', $collection->rewind()); $this->assertTrue($collection->valid()); $this->assertEqual('dib', $collection->prev()); $this->assertTrue($collection->valid()); $this->assertEqual('bar', $collection->prev()); $this->assertTrue($collection->valid()); $this->assertEqual('dib', $collection->end()); $this->assertTrue($collection->valid()); }