From e37f3d3d453103a77fe54976186ed22434bdbce2 Mon Sep 17 00:00:00 2001 From: Alex Manase Date: Sun, 30 Oct 2022 13:05:09 +0200 Subject: [PATCH 1/3] ignore the keys returned by the datasets Generator for storing them into an array --- src/Repositories/DatasetsRepository.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Repositories/DatasetsRepository.php b/src/Repositories/DatasetsRepository.php index f6874fc3..f4c7c11d 100644 --- a/src/Repositories/DatasetsRepository.php +++ b/src/Repositories/DatasetsRepository.php @@ -156,7 +156,7 @@ final class DatasetsRepository } if ($datasets[$index] instanceof Traversable) { - $datasets[$index] = iterator_to_array($datasets[$index]); + $datasets[$index] = iterator_to_array($datasets[$index], false); } // @phpstan-ignore-next-line From 3aab10774e36724909e1e3be00bbb87b1e459e89 Mon Sep 17 00:00:00 2001 From: Alex Manase Date: Sun, 30 Oct 2022 13:16:07 +0200 Subject: [PATCH 2/3] wip --- tests/.snapshots/success.txt | 7 ++++++- tests/Datasets/Numbers.php | 17 +++++++++++++++++ tests/Features/Datasets.php | 19 +++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/tests/.snapshots/success.txt b/tests/.snapshots/success.txt index b5d2c5f9..14a80f82 100644 --- a/tests/.snapshots/success.txt +++ b/tests/.snapshots/success.txt @@ -102,6 +102,11 @@ ✓ more than two datasets with (2) / (4) / (5) ✓ more than two datasets with (2) / (4) / (6) ✓ more than two datasets did the job right + ✓ eager registered wrapped datasets with Generator functions with (1) + ✓ eager registered wrapped datasets with Generator functions with (2) + ✓ eager registered wrapped datasets with Generator functions with (3) + ✓ eager registered wrapped datasets with Generator functions with (4) + ✓ eager registered wrapped datasets with Generator functions did the job right ✓ it can resolve a dataset after the test case is available with (Closure Object (...)) #1 ✓ it can resolve a dataset after the test case is available with (Closure Object (...)) #2 ✓ it can resolve a dataset after the test case is available with shared yield sets with (Closure Object (...)) #1 @@ -818,4 +823,4 @@ PASS Tests\Visual\Version ✓ visual snapshot of help command output - Tests: 4 incomplete, 1 todo, 18 skipped, 562 passed (1460 assertions) \ No newline at end of file + Tests: 4 incomplete, 1 todo, 18 skipped, 566 passed (1465 assertions) \ No newline at end of file diff --git a/tests/Datasets/Numbers.php b/tests/Datasets/Numbers.php index 2b718699..fc2d81b7 100644 --- a/tests/Datasets/Numbers.php +++ b/tests/Datasets/Numbers.php @@ -13,3 +13,20 @@ dataset('numbers.closure.wrapped', function () { dataset('numbers.array', [[1], [2]]); dataset('numbers.array.wrapped', [1, 2]); + +dataset('numbers.generators.wrapped', function () { + yield from firstSetOfNumbers(); + yield from secondSetOfNumbers(); +}); + +function firstSetOfNumbers(): Generator +{ + yield 1; + yield 2; +} + +function secondSetOfNumbers(): Generator +{ + yield 3; + yield 4; +} diff --git a/tests/Features/Datasets.php b/tests/Features/Datasets.php index 183b2d3b..7d24a649 100644 --- a/tests/Features/Datasets.php +++ b/tests/Features/Datasets.php @@ -230,6 +230,25 @@ test('more than two datasets did the job right', function () use ($state) { expect($state->text)->toBe('121212121212131423241314232411122122111221221112212213142324135136145146235236245246'); }); +$wrapped_generator_state = new stdClass(); +$wrapped_generator_state->text = ''; +$wrapped_generator_function_datasets = [1, 2, 3, 4]; + +test( + 'eager registered wrapped datasets with Generator functions', + function (int $text) use ( + $wrapped_generator_state, + $wrapped_generator_function_datasets + ) { + $wrapped_generator_state->text .= $text; + expect(in_array($text, $wrapped_generator_function_datasets))->toBe(true); + } +)->with('numbers.generators.wrapped'); + +test('eager registered wrapped datasets with Generator functions did the job right', function () use ($wrapped_generator_state) { + expect($wrapped_generator_state->text)->toBe('1234'); +}); + it('can resolve a dataset after the test case is available', function ($result) { expect($result)->toBe('bar'); })->with([ From 649047f087b2fc10d382ef1c0ca5c48d173ac5e9 Mon Sep 17 00:00:00 2001 From: Alex Manase Date: Sun, 30 Oct 2022 13:17:56 +0200 Subject: [PATCH 3/3] formatting --- tests/Features/Datasets.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/Features/Datasets.php b/tests/Features/Datasets.php index 7d24a649..073b1e68 100644 --- a/tests/Features/Datasets.php +++ b/tests/Features/Datasets.php @@ -230,8 +230,8 @@ test('more than two datasets did the job right', function () use ($state) { expect($state->text)->toBe('121212121212131423241314232411122122111221221112212213142324135136145146235236245246'); }); -$wrapped_generator_state = new stdClass(); -$wrapped_generator_state->text = ''; +$wrapped_generator_state = new stdClass(); +$wrapped_generator_state->text = ''; $wrapped_generator_function_datasets = [1, 2, 3, 4]; test(