diff --git a/packages/Utils/src/Arr.php b/packages/Utils/src/Arr.php index 69b6d6992..2de1b8c04 100644 --- a/packages/Utils/src/Arr.php +++ b/packages/Utils/src/Arr.php @@ -3,8 +3,11 @@ namespace Aedart\Utils; +use Aedart\Contracts\Utils\Random\ArrayRandomizer; +use Aedart\Utils\Random\Factory; use Illuminate\Support\Arr as ArrBase; use InvalidArgumentException; +use Random\Engine; /** * Array Utility @@ -14,6 +17,18 @@ */ class Arr extends ArrBase { + /** + * Returns a new Array Randomizer instance + * + * @param Engine|null $engine [optional] + * + * @return ArrayRandomizer + */ + public static function randomized(Engine|null $engine = null): ArrayRandomizer + { + return Factory::make($engine); + } + /** * Returns a single random element from given list * diff --git a/tests/Unit/Utils/ArrTest.php b/tests/Unit/Utils/ArrTest.php index 76c0219ed..cbd31cab2 100644 --- a/tests/Unit/Utils/ArrTest.php +++ b/tests/Unit/Utils/ArrTest.php @@ -3,6 +3,7 @@ namespace Aedart\Tests\Unit\Utils; +use Aedart\Contracts\Utils\Random\ArrayRandomizer; use Aedart\Testing\Helpers\ConsoleDebugger; use Aedart\Testing\TestCases\UnitTestCase; use Aedart\Utils\Arr; @@ -18,6 +19,18 @@ */ class ArrTest extends UnitTestCase { + /** + * @test + * + * @return void + */ + public function returnsRandomizer(): void + { + $randomizer = Arr::randomized(); + + $this->assertInstanceOf(ArrayRandomizer::class, $randomizer); + } + /** * @test */