|
|
|
<?php
|
|
|
|
|
|
|
|
namespace yiiunit\extensions\sphinx;
|
|
|
|
|
|
|
|
use yii\data\ActiveDataProvider;
|
|
|
|
use yii\sphinx\Query;
|
|
|
|
use yiiunit\data\sphinx\ar\ActiveRecord;
|
|
|
|
use yiiunit\data\sphinx\ar\ArticleIndex;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @group sphinx
|
|
|
|
*/
|
|
|
|
class ActiveDataProviderTest extends SphinxTestCase
|
|
|
|
{
|
|
|
|
protected function setUp()
|
|
|
|
{
|
|
|
|
parent::setUp();
|
|
|
|
ActiveRecord::$db = $this->getConnection();
|
|
|
|
}
|
|
|
|
|
|
|
|
// Tests :
|
|
|
|
|
|
|
|
public function testQuery()
|
|
|
|
{
|
|
|
|
$query = new Query;
|
|
|
|
$query->from('yii2_test_article_index');
|
|
|
|
|
|
|
|
$provider = new ActiveDataProvider([
|
|
|
|
'query' => $query,
|
|
|
|
'db' => $this->getConnection(),
|
|
|
|
]);
|
|
|
|
$models = $provider->getModels();
|
|
|
|
$this->assertEquals(2, count($models));
|
|
|
|
|
|
|
|
$provider = new ActiveDataProvider([
|
|
|
|
'query' => $query,
|
|
|
|
'db' => $this->getConnection(),
|
|
|
|
'pagination' => [
|
|
|
|
'pageSize' => 1,
|
|
|
|
]
|
|
|
|
]);
|
|
|
|
$models = $provider->getModels();
|
|
|
|
$this->assertEquals(1, count($models));
|
|
|
|
}
|
|
|
|
|
|
|
|
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());
|
|
|
|
|
|
|
|
$provider = new ActiveDataProvider([
|
|
|
|
'query' => ArticleIndex::find(),
|
|
|
|
'pagination' => [
|
|
|
|
'pageSize' => 1,
|
|
|
|
]
|
|
|
|
]);
|
|
|
|
$models = $provider->getModels();
|
|
|
|
$this->assertEquals(1, count($models));
|
|
|
|
}
|
|
|
|
}
|