ActiveRelationTest.php 1.21 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
<?php

namespace yiiunit\extensions\sphinx;

use yiiunit\data\sphinx\ar\ActiveRecord;
use yiiunit\data\ar\ActiveRecord as ActiveRecordDb;
use yiiunit\data\sphinx\ar\ArticleIndex;
use yiiunit\data\sphinx\ar\ArticleDb;

/**
 * @group sphinx
 */
class ActiveRelationTest extends SphinxTestCase
{
	protected function setUp()
	{
		parent::setUp();
		ActiveRecord::$db = $this->getConnection();
		ActiveRecordDb::$db = $this->getDbConnection();
	}

22 23
	// Tests :

24 25
	public function testFindLazy()
	{
26 27 28 29 30 31
		/** @var ArticleDb $article */
		$article = ArticleDb::find(['id' => 2]);
		$this->assertFalse($article->isRelationPopulated('index'));
		$index = $article->index;
		$this->assertTrue($article->isRelationPopulated('index'));
		$this->assertTrue($index instanceof ArticleIndex);
32 33 34 35 36
		$this->assertEquals(1, count($article->populatedRelations));
	}

	public function testFindEager()
	{
37
		$articles = ArticleDb::find()->with('index')->all();
38
		$this->assertEquals(2, count($articles));
39 40 41 42
		$this->assertTrue($articles[0]->isRelationPopulated('index'));
		$this->assertTrue($articles[1]->isRelationPopulated('index'));
		$this->assertTrue($articles[0]->index instanceof ArticleIndex);
		$this->assertTrue($articles[1]->index instanceof ArticleIndex);
43
	}
44
}