From 252b72176011c4f2ba01c30efd1ba2c094f7aaa6 Mon Sep 17 00:00:00 2001 From: Sergei Tigrov Date: Sat, 27 Apr 2024 22:44:20 +0700 Subject: [PATCH] Update test according to main PR (#260) --- CHANGELOG.md | 1 + src/DMLQueryBuilder.php | 4 ++++ tests/CommandTest.php | 2 +- tests/Provider/CommandProvider.php | 5 ++++- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9db7518..59bbd8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## 2.0.0 under development +- Enh #260: Support `Traversable` values for `DMLQueryBuilder::batchInsert()` method with empty columns (@Tigrov) - Enh #255: Implement `SqlParser` and `ExpressionBuilder` driver classes (@Tigrov) ## 1.3.0 March 21, 2024 diff --git a/src/DMLQueryBuilder.php b/src/DMLQueryBuilder.php index 077954c..c1b57e1 100644 --- a/src/DMLQueryBuilder.php +++ b/src/DMLQueryBuilder.php @@ -30,6 +30,10 @@ final class DMLQueryBuilder extends AbstractDMLQueryBuilder */ public function batchInsert(string $table, array $columns, iterable $rows, array &$params = []): string { + if (!is_array($rows)) { + $rows = $this->prepareTraversable($rows); + } + if (empty($rows)) { return ''; } diff --git a/tests/CommandTest.php b/tests/CommandTest.php index c973187..6f6a39b 100644 --- a/tests/CommandTest.php +++ b/tests/CommandTest.php @@ -65,7 +65,7 @@ public function testAddDefaultValue(): void public function testBatchInsert( string $table, array $columns, - array $values, + iterable $values, string $expected, array $expectedParams = [], int $insertedRow = 1 diff --git a/tests/Provider/CommandProvider.php b/tests/Provider/CommandProvider.php index 2b44353..7945e39 100644 --- a/tests/Provider/CommandProvider.php +++ b/tests/Provider/CommandProvider.php @@ -61,7 +61,10 @@ public static function batchInsert(): array 'empty columns and objects' => [ ':qp3' => '1', ], - 'empty columns and Traversable' => [ + 'empty columns and a Traversable value' => [ + ':qp3' => '1', + ], + 'empty columns and Traversable values' => [ ':qp3' => '1', ], ];