Phalcon\Test\Mvc\CollectionsTest::testCollectionsFind PHP Метод

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

public testCollectionsFind ( )
    public function testCollectionsFind()
    {
        $this->loadData();
        //Without Params
        $cars = Cars::find();
        $this->assertTrue(is_array($cars));
        $this->assertInstanceOf('Phalcon\\Mvc\\MongoCollection', $cars[0]);
        $this->assertCount(5, $cars);
        //With Params
        $ferraris = Cars::find([['manufacturer' => 'Ferrari']]);
        $this->assertCount(2, $ferraris);
        //Limit
        $ferraris = Cars::find([['manufacturer' => 'Ferrari'], 'limit' => 1]);
        $this->assertCount(1, $ferraris);
        $this->assertEquals('488 GTB', $ferraris[0]->model);
        //Skip
        $ferraris = Cars::find([['manufacturer' => 'Ferrari'], 'limit' => 1, 'skip' => 1]);
        $this->assertCount(1, $ferraris);
        $this->assertEquals('LaFerrari', $ferraris[0]->model);
        //Sort ASC
        $ferraris = Cars::find([['manufacturer' => 'Ferrari'], 'sort' => ['rank' => 1]]);
        $this->assertCount(2, $ferraris);
        $this->assertEquals('488 GTB', $ferraris[0]->model);
        //Sort DESC
        $ferraris = Cars::find([['manufacturer' => 'Ferrari'], 'sort' => ['rank' => -1]]);
        $this->assertCount(2, $ferraris);
        $this->assertEquals('LaFerrari', $ferraris[0]->model);
        //Fields
        $cars = Cars::find(['fields' => ['manufacturer' => true, 'model' => true]]);
        $this->assertCount(5, $cars);
        $this->assertObjectNotHasAttribute('rank', $cars[0]);
        //$gt
        $cars = Cars::find([['rank' => ['$gt' => 2]]]);
        $this->assertCount(3, $cars);
        $this->assertEquals('488 GTB', $cars[0]->model);
        //$lt
        $cars = Cars::find([['rank' => ['$lt' => 3]]]);
        $this->assertCount(2, $cars);
        $this->assertEquals('650S', $cars[0]->model);
        //More Complex Query
        $cars = Cars::find([['rank' => ['$lt' => 3]], 'fields' => ['model' => true, 'rank' => true], 'sort' => ['rank' => -1]]);
        $this->assertCount(2, $cars);
        $this->assertEquals('911 GT3', $cars[0]->model);
        $this->assertObjectNotHasAttribute('manufacturer', $cars[0]);
        $this->clearData();
    }