Yii2 framework backup
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

78 lines
2.5 KiB

<?php
/**
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
namespace yiiunit\framework\db;
use yii\db\ActiveQuery;
use yii\db\ActiveRecord as DefaultActiveRecord;
use yiiunit\data\ar\ActiveRecord;
use yiiunit\TestCase;
class ActiveQueryModelConnectionTest extends TestCase
{
private $globalConnection;
private $modelConnection;
protected function setUp()
{
$this->globalConnection = $this->getMockBuilder('yii\db\Connection')->getMock();
$this->modelConnection = $this->getMockBuilder('yii\db\Connection')->getMock();
$this->mockApplication([
'components' => [
'db' => $this->globalConnection
]
]);
ActiveRecord::$db = $this->modelConnection;
}
private function prepareConnectionMock($connection)
{
$command = $this->getMockBuilder('yii\db\Command')->getMock();
$command->method('queryOne')->willReturn(false);
$connection->method('createCommand')->willReturn($command);
$builder = $this->getMockBuilder('yii\db\QueryBuilder')->disableOriginalConstructor()->getMock();
$connection->expects($this->once())->method('getQueryBuilder')->willReturn($builder);
}
public function testEnsureModelConnectionForOne()
{
$this->globalConnection->expects($this->never())->method('getQueryBuilder');
$this->prepareConnectionMock($this->modelConnection);
$query = new ActiveQuery(ActiveRecord::className());
$query->one();
}
public function testEnsureGlobalConnectionForOne()
{
$this->modelConnection->expects($this->never())->method('getQueryBuilder');
$this->prepareConnectionMock($this->globalConnection);
$query = new ActiveQuery(DefaultActiveRecord::className());
$query->one();
}
public function testEnsureModelConnectionForAll()
{
$this->globalConnection->expects($this->never())->method('getQueryBuilder');
$this->prepareConnectionMock($this->modelConnection);
$query = new ActiveQuery(ActiveRecord::className());
$query->all();
}
public function testEnsureGlobalConnectionForAll()
{
$this->modelConnection->expects($this->never())->method('getQueryBuilder');
$this->prepareConnectionMock($this->globalConnection);
$query = new ActiveQuery(DefaultActiveRecord::className());
$query->all();
}
}