ActiveDataProviderTest.php 1.72 KB
Newer Older
1 2 3 4 5
<?php

namespace yiiunit\extensions\sphinx;

use yii\data\ActiveDataProvider;
6
use yii\sphinx\Query;
7 8
use yiiunit\data\ar\sphinx\ActiveRecord;
use yiiunit\data\ar\sphinx\ArticleIndex;
9 10 11 12 13 14

/**
 * @group sphinx
 */
class ActiveDataProviderTest extends SphinxTestCase
{
15 16 17 18 19
    protected function setUp()
    {
        parent::setUp();
        ActiveRecord::$db = $this->getConnection();
    }
20

21
    // Tests :
22

23 24 25 26
    public function testQuery()
    {
        $query = new Query;
        $query->from('yii2_test_article_index');
27

28 29 30 31 32 33
        $provider = new ActiveDataProvider([
            'query' => $query,
            'db' => $this->getConnection(),
        ]);
        $models = $provider->getModels();
        $this->assertEquals(2, count($models));
34

35 36 37 38 39 40 41 42 43 44
        $provider = new ActiveDataProvider([
            'query' => $query,
            'db' => $this->getConnection(),
            'pagination' => [
                'pageSize' => 1,
            ]
        ]);
        $models = $provider->getModels();
        $this->assertEquals(1, count($models));
    }
45

46 47 48 49 50 51 52 53 54 55
    public function testActiveQuery()
    {
        $provider = new ActiveDataProvider([
            'query' => ArticleIndex::find()->orderBy('id ASC'),
        ]);
        $models = $provider->getModels();
        $this->assertEquals(2, count($models));
        $this->assertTrue($models[0] instanceof ArticleIndex);
        $this->assertTrue($models[1] instanceof ArticleIndex);
        $this->assertEquals([1, 2], $provider->getKeys());
56

57 58 59 60 61 62 63 64 65
        $provider = new ActiveDataProvider([
            'query' => ArticleIndex::find(),
            'pagination' => [
                'pageSize' => 1,
            ]
        ]);
        $models = $provider->getModels();
        $this->assertEquals(1, count($models));
    }
AlexGx committed
66
}