lithium\tests\cases\util\CollectionTest::testArrayAccessTraversalMethods PHP Метод

testArrayAccessTraversalMethods() публичный Метод

Tests the ArrayAccess interface implementation for traversing values.
    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());
        $collection = new Collection(array('data' => array(0, 1, 2, 3, 4)));
        $this->assertIdentical(0, $collection->first());
        $this->assertIdentical(0, $collection->rewind());
        $this->assertIdentical(1, $collection->next());
        $this->assertIdentical(2, $collection->next());
        $this->assertIdentical(3, $collection->next());
        $this->assertIdentical(2, $collection->prev());
        $this->assertIdentical(2, $collection->current());
        $this->assertIdentical(3, $collection->next());
        $this->assertIdentical(4, $collection->next());
        $this->assertIdentical(3, $collection->prev());
        $this->assertIdentical(4, $collection->next());
        $this->assertTrue($collection->valid());
        $this->assertFalse($collection->next());
        $this->assertFalse($collection->valid());
        $this->assertFalse($collection->current());
        $this->assertIdentical(4, $collection->prev());
        $this->assertTrue($collection->valid());
    }