/**
* 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());
}