From b405f17998863993261061b9505c0ffb668e5587 Mon Sep 17 00:00:00 2001 From: Tigrov Date: Wed, 29 Jan 2025 10:10:07 +0700 Subject: [PATCH] add tests --- tests/Db/Helper/DbArrayHelperTest.php | 34 +++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/Db/Helper/DbArrayHelperTest.php b/tests/Db/Helper/DbArrayHelperTest.php index b8e448ac2..64aecdcc3 100644 --- a/tests/Db/Helper/DbArrayHelperTest.php +++ b/tests/Db/Helper/DbArrayHelperTest.php @@ -67,4 +67,38 @@ public function testIndexWithNonExistingIndexBy(): void DbArrayHelper::index($rows, 'non-existing-key', ['key']); } + + public function testIndexWithArrangeBy(): void + { + $rows = [ + ['key' => 'value1'], + ['key' => 'value2'], + ]; + + set_error_handler(static function (int $errno, string $errstr) { + restore_error_handler(); + throw new \Exception('E_WARNING: ' . $errstr, $errno); + }, E_WARNING); + + $this->expectExceptionMessage('E_WARNING: Undefined array key "non-existing-key"'); + + DbArrayHelper::index($rows, null, ['non-existing-key']); + } + + public function testIndexWithClosureIndexByAndArrangeBy(): void + { + $rows = [ + ['key' => 'value1'], + ['key' => 'value2'], + ]; + + $this->assertSame([ + 'value1' => [ + 'value1' => ['key' => 'value1'], + ], + 'value2' => [ + 'value2' => ['key' => 'value2'], + ], + ], DbArrayHelper::index($rows, fn ($row) => $row['key'], ['key'])); + } }