From 56c1bd878490ca13c57884c56b128e4879ea32e3 Mon Sep 17 00:00:00 2001 From: Tigrov Date: Sun, 3 May 2026 14:34:29 +0700 Subject: [PATCH] Add tests for `query()` and `createQuery()` --- tests/ActiveQueryTest.php | 17 ------------- tests/ActiveRecordTest.php | 52 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 17 deletions(-) diff --git a/tests/ActiveQueryTest.php b/tests/ActiveQueryTest.php index 2659907ff..b4b0dfd44 100644 --- a/tests/ActiveQueryTest.php +++ b/tests/ActiveQueryTest.php @@ -11,7 +11,6 @@ use Yiisoft\ActiveRecord\ActiveQuery; use Yiisoft\ActiveRecord\ActiveQueryInterface; use Yiisoft\ActiveRecord\Internal\ArArrayHelper; -use Yiisoft\ActiveRecord\JoinWith; use Yiisoft\ActiveRecord\OptimisticLockException; use Yiisoft\ActiveRecord\Tests\Stubs\ActiveRecord\BitValues; use Yiisoft\ActiveRecord\Tests\Stubs\ActiveRecord\Category; @@ -31,7 +30,6 @@ use Yiisoft\ActiveRecord\Tests\Support\Assert; use Yiisoft\ActiveRecord\Tests\Support\DbHelper; use Yiisoft\Db\Command\AbstractCommand; -use Yiisoft\Db\Exception\Exception; use Yiisoft\Db\Exception\InvalidCallException; use Yiisoft\Db\Exception\InvalidConfigException; use Yiisoft\Db\Expression\Expression; @@ -2526,21 +2524,6 @@ public function testEqual(): void $this->assertFalse($customerA->equals($customerB)); } - public function testArClassAsString(): void - { - $query = Customer::query(); - - $this->assertInstanceOf(Customer::class, $query->getModel()); - } - - public function testArClassAsInstance(): void - { - $customer = new Customer(); - $query = $customer->createQuery(); - - $this->assertInstanceOf(Customer::class, $query->getModel()); - } - public function testGetPrimaryModelOnNonRelationQuery(): void { $customerQuery = Customer::query(); diff --git a/tests/ActiveRecordTest.php b/tests/ActiveRecordTest.php index 1388db6ec..7b4570dbb 100644 --- a/tests/ActiveRecordTest.php +++ b/tests/ActiveRecordTest.php @@ -20,6 +20,7 @@ use Yiisoft\ActiveRecord\Tests\Stubs\ActiveRecord\Cat; use Yiisoft\ActiveRecord\Tests\Stubs\ActiveRecord\CategoryAfterDelete; use Yiisoft\ActiveRecord\Tests\Stubs\ActiveRecord\Customer; +use Yiisoft\ActiveRecord\Tests\Stubs\ActiveRecord\CustomerQuery; use Yiisoft\ActiveRecord\Tests\Stubs\ActiveRecord\CustomerWithAlias; use Yiisoft\ActiveRecord\Tests\Stubs\ActiveRecord\CustomerWithCustomConnection; use Yiisoft\ActiveRecord\Tests\Stubs\ActiveRecord\CustomerWithFactory; @@ -1893,5 +1894,56 @@ public function testSoftDeleteWithCustomDate(): void $this->assertSame($deletedAt->getTimestamp(), $softDeletedOrder->get('deleted_at')); } + public function testQuery(): void + { + $query = Customer::query(); + + $this->assertSame(CustomerQuery::class, $query::class); + $this->assertSame(Customer::class, $query->getModel()::class); + } + + public function testQueryWithStringClassName(): void + { + $query = Customer::query(Order::class); + + $this->assertSame(CustomerQuery::class, $query::class); + $this->assertSame(Order::class, $query->getModel()::class); + } + + public function testQueryWithModelInstance(): void + { + $query = Customer::query(new Order()); + + $this->assertSame(CustomerQuery::class, $query::class); + $this->assertSame(Order::class, $query->getModel()::class); + } + + public function testCreateQuery(): void + { + $order = new Order(); + $query = $order->createQuery(); + + $this->assertSame(ActiveQuery::class, $query::class); + $this->assertSame(Order::class, $query->getModel()::class); + } + + public function testCreateQueryWithStringClassName(): void + { + $order = new Order(); + $query = $order->createQuery(Customer::class); + + $this->assertSame(CustomerQuery::class, $query::class); + $this->assertSame(Customer::class, $query->getModel()::class); + } + + public function testCreateQueryWithModelInstance(): void + { + $order = new Order(); + $query = $order->createQuery(new Customer()); + + $this->assertSame(CustomerQuery::class, $query::class); + $this->assertSame(Customer::class, $query->getModel()::class); + } + abstract protected function createFactory(): Factory; }