Fix #18472: Fix initializing db component configuration

This commit is contained in:
Bizley
2021-01-11 12:54:39 +01:00
committed by GitHub
parent e2f286e96d
commit f544883148
4 changed files with 17 additions and 7 deletions

View File

@ -88,9 +88,7 @@ class ActiveDataProvider extends BaseDataProvider
public function init()
{
parent::init();
if ($this->db !== null) {
$this->db = Instance::ensure($this->db, Connection::className());
}
$this->db = Instance::ensure($this->db === null ? 'db' : $this->db, Connection::className());
}
/**

View File

@ -8,6 +8,7 @@
namespace yiiunit\framework\data;
use yii\data\ActiveDataProvider;
use yii\db\Connection;
use yii\db\Query;
use yiiunit\TestCase;
@ -21,6 +22,7 @@ class ActiveDataProviderCloningTest extends TestCase
$queryFirst = new Query();
$dataProviderFirst = new ActiveDataProvider([
'db' => new Connection(),
'query' => $queryFirst
]);

View File

@ -35,6 +35,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
public function testActiveQuery()
{
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => Order::find()->orderBy('id'),
]);
$orders = $provider->getModels();
@ -45,6 +46,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
$this->assertEquals([1, 2, 3], $provider->getKeys());
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => Order::find(),
'pagination' => [
'pageSize' => 2,
@ -59,6 +61,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
/* @var $customer Customer */
$customer = Customer::findOne(2);
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => $customer->getOrders(),
]);
$orders = $provider->getModels();
@ -68,6 +71,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
$this->assertEquals([2, 3], $provider->getKeys());
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => $customer->getOrders(),
'pagination' => [
'pageSize' => 1,
@ -82,6 +86,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
/* @var $order Order */
$order = Order::findOne(2);
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => $order->getItems(),
]);
$items = $provider->getModels();
@ -92,6 +97,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
$this->assertEquals([3, 4, 5], $provider->getKeys());
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => $order->getItems(),
'pagination' => [
'pageSize' => 2,
@ -106,6 +112,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
/* @var $order Order */
$order = Order::findOne(1);
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => $order->getBooks(),
]);
$items = $provider->getModels();
@ -114,6 +121,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
$this->assertInstanceOf(Item::className(), $items[1]);
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => $order->getBooks(),
'pagination' => [
'pageSize' => 1,

View File

@ -34,6 +34,7 @@ class LinkSorterTest extends DatabaseTestCase
public function testLabelsSimple()
{
$dataProvider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => Order::find(),
'models' => [new Order()],
'totalCount' => 1,
@ -58,6 +59,7 @@ class LinkSorterTest extends DatabaseTestCase
public function testLabelsExplicit()
{
$dataProvider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => Order::find(),
'models' => [new Order()],
'totalCount' => 1,