From 5ab7e4baacc62ba3c06ebfb1c22663c55dc58efd Mon Sep 17 00:00:00 2001 From: Tigrov Date: Fri, 15 Aug 2025 00:24:38 +0300 Subject: [PATCH 1/3] Add `Connection::getColumnBuilderClass()` --- src/Connection.php | 6 ++++++ tests/ColumnBuilderTest.php | 6 ------ tests/ColumnTest.php | 2 -- tests/ConnectionTest.php | 31 ++++++++++--------------------- 4 files changed, 16 insertions(+), 29 deletions(-) diff --git a/src/Connection.php b/src/Connection.php index 1e9715d8..615bfa2f 100644 --- a/src/Connection.php +++ b/src/Connection.php @@ -6,6 +6,7 @@ use Yiisoft\Db\Driver\Pdo\AbstractPdoConnection; use Yiisoft\Db\Driver\Pdo\PdoCommandInterface; +use Yiisoft\Db\Mssql\Column\ColumnBuilder; use Yiisoft\Db\Mssql\Column\ColumnFactory; use Yiisoft\Db\QueryBuilder\QueryBuilderInterface; use Yiisoft\Db\Schema\Column\ColumnFactoryInterface; @@ -44,6 +45,11 @@ public function createTransaction(): TransactionInterface return new Transaction($this); } + public function getColumnBuilderClass(): string + { + return ColumnBuilder::class; + } + public function getColumnFactory(): ColumnFactoryInterface { return $this->columnFactory ??= new ColumnFactory(); diff --git a/tests/ColumnBuilderTest.php b/tests/ColumnBuilderTest.php index bd10f3de..85ba62dd 100644 --- a/tests/ColumnBuilderTest.php +++ b/tests/ColumnBuilderTest.php @@ -5,7 +5,6 @@ namespace Yiisoft\Db\Mssql\Tests; use PHPUnit\Framework\Attributes\DataProviderExternal; -use Yiisoft\Db\Mssql\Column\ColumnBuilder; use Yiisoft\Db\Mssql\Tests\Provider\ColumnBuilderProvider; use Yiisoft\Db\Mssql\Tests\Support\TestTrait; use Yiisoft\Db\Tests\AbstractColumnBuilderTest; @@ -17,11 +16,6 @@ class ColumnBuilderTest extends AbstractColumnBuilderTest { use TestTrait; - public function getColumnBuilderClass(): string - { - return ColumnBuilder::class; - } - #[DataProviderExternal(ColumnBuilderProvider::class, 'buildingMethods')] public function testBuildingMethods( string $buildingMethod, diff --git a/tests/ColumnTest.php b/tests/ColumnTest.php index 9267262f..8c1ebb84 100644 --- a/tests/ColumnTest.php +++ b/tests/ColumnTest.php @@ -33,8 +33,6 @@ final class ColumnTest extends CommonColumnTest { use TestTrait; - protected const COLUMN_BUILDER = ColumnBuilder::class; - protected function insertTypeValues(ConnectionInterface $db): void { $db->createCommand()->insert( diff --git a/tests/ConnectionTest.php b/tests/ConnectionTest.php index 2ecd9fda..17cc196d 100644 --- a/tests/ConnectionTest.php +++ b/tests/ConnectionTest.php @@ -5,11 +5,8 @@ namespace Yiisoft\Db\Mssql\Tests; use PDO; -use Throwable; use Yiisoft\Db\Driver\Pdo\PdoConnectionInterface; -use Yiisoft\Db\Exception\Exception; -use Yiisoft\Db\Exception\InvalidConfigException; -use Yiisoft\Db\Exception\NotSupportedException; +use Yiisoft\Db\Mssql\Column\ColumnBuilder; use Yiisoft\Db\Mssql\Column\ColumnFactory; use Yiisoft\Db\Mssql\Connection; use Yiisoft\Db\Mssql\Tests\Support\TestTrait; @@ -19,19 +16,11 @@ /** * @group mssql - * - * @psalm-suppress PropertyNotSetInConstructor */ final class ConnectionTest extends CommonConnectionTest { use TestTrait; - /** - * @throws Exception - * @throws InvalidConfigException - * @throws NotSupportedException - * @throws Throwable - */ public function testTransactionIsolation(): void { $db = $this->getConnection(true); @@ -52,11 +41,6 @@ public function testTransactionIsolation(): void $this->assertTrue(true); } - /** - * @throws Exception - * @throws InvalidConfigException - * @throws Throwable - */ public function testTransactionShortcutCustom(): void { $db = $this->getConnection(); @@ -80,10 +64,6 @@ static function (PdoConnectionInterface $db): bool { $this->assertSame('1', $profilesCount, 'profile should be inserted in transaction shortcut'); } - /** - * @throws Exception - * @throws InvalidConfigException - */ public function testSettingDefaultAttributes(): void { $db = $this->getConnection(); @@ -91,6 +71,15 @@ public function testSettingDefaultAttributes(): void $this->assertSame(PDO::ERRMODE_EXCEPTION, $db->getActivePDO()?->getAttribute(PDO::ATTR_ERRMODE)); } + public function getColumnBuilderClass(): void + { + $db = $this->getConnection(); + + $this->assertSame(ColumnBuilder::class, $db->getColumnBuilderClass()); + + $db->close(); + } + public function testGetColumnFactory(): void { $db = $this->getConnection(); From 6645bdde355981c492a26f9fa238285fd1cc6671 Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Thu, 14 Aug 2025 21:24:54 +0000 Subject: [PATCH 2/3] Apply fixes from StyleCI --- tests/ColumnTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/ColumnTest.php b/tests/ColumnTest.php index 8c1ebb84..369bbdd4 100644 --- a/tests/ColumnTest.php +++ b/tests/ColumnTest.php @@ -12,7 +12,6 @@ use Yiisoft\Db\Expression\Expression; use Yiisoft\Db\Expression\Param; use Yiisoft\Db\Mssql\Column\BinaryColumn; -use Yiisoft\Db\Mssql\Column\ColumnBuilder; use Yiisoft\Db\Mssql\Tests\Provider\ColumnProvider; use Yiisoft\Db\Mssql\Tests\Support\TestTrait; use Yiisoft\Db\Schema\Column\BooleanColumn; From 5dbf08af7dd46bc5eceab2776951ef6976ede6ca Mon Sep 17 00:00:00 2001 From: Tigrov Date: Fri, 15 Aug 2025 00:44:13 +0300 Subject: [PATCH 3/3] Add line to CHANGELOG.md [skip ci] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f1b0c82..aab05822 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,6 +53,7 @@ - Enh #380: Remove support dots in table names (@Tigrov) - Enh #383: Refactor `TableSchema` and `Schema` classes (@Tigrov) - Enh #386: Support column's collation (@Tigrov) +- New #391: Add `Connection::getColumnBuilderClass()` method (@Tigrov) ## 1.2.0 March 21, 2024