Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
add test
  • Loading branch information
simPod committed Feb 4, 2021
commit 60dd046d41e143bda03d736e4bf80aaeda284be0
22 changes: 22 additions & 0 deletions tests/IterableMapTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,17 @@

namespace BenTools\IterableFunctions\Tests;

use Generator;
use PHPUnit\Framework\Assert;
use SplFixedArray;
use stdClass;

use function BenTools\IterableFunctions\iterable_map;
use function BenTools\IterableFunctions\iterable_to_array;
use function it;
use function PHPUnit\Framework\assertEquals;
use function PHPUnit\Framework\assertInstanceOf;
use function PHPUnit\Framework\assertSame;

it('maps an array', function (): void {
$iterable = ['foo', 'bar'];
Expand All @@ -22,3 +27,20 @@
$map = 'strtoupper';
assertEquals(['FOO', 'BAR'], iterable_to_array(iterable_map($iterable, $map)));
});

it('maps iterable with object keys', function (): void {
foreach (iterable_map(iterableWithObjectKeys(), 'strtoupper') as $key => $item) {
assertInstanceOf(stdClass::class, $key);
assertSame('FOO', $item);

return;
}

Assert::fail('Did not iterate');
});

/** @return Generator<stdClass, string> */
function iterableWithObjectKeys(): Generator
{
yield new stdClass() => 'foo';
}