|
5 | 5 | namespace Munus\Tests\Collection; |
6 | 6 |
|
7 | 7 | use Munus\Collection\GenericList; |
| 8 | +use Munus\Collection\Map; |
8 | 9 | use Munus\Collection\Set; |
9 | 10 | use Munus\Collection\Stream; |
10 | 11 | use Munus\Control\Option; |
11 | 12 | use Munus\Exception\UnsupportedOperationException; |
| 13 | +use Munus\Tuple; |
12 | 14 | use PHPUnit\Framework\TestCase; |
13 | 15 |
|
14 | 16 | final class TraversableTest extends TestCase |
@@ -145,4 +147,21 @@ public function testNoneMatch(): void |
145 | 147 | self::assertFalse(GenericList::of(1, 2, 3)->noneMatch(fn (int $v) => $v % 2 === 0)); |
146 | 148 | self::assertFalse(GenericList::of(1)->noneMatch(fn (int $v) => $v % 2 === 1)); |
147 | 149 | } |
| 150 | + |
| 151 | + public function testFindFirstWhenEmpty(): void |
| 152 | + { |
| 153 | + self::assertTrue(GenericList::empty()->findFirst()->isEmpty()); |
| 154 | + self::assertTrue(Map::empty()->findFirst()->isEmpty()); |
| 155 | + self::assertTrue(Set::empty()->findFirst()->isEmpty()); |
| 156 | + self::assertTrue(Stream::empty()->findFirst()->isEmpty()); |
| 157 | + } |
| 158 | + |
| 159 | + public function testFindFirstWhenNotEmpty(): void |
| 160 | + { |
| 161 | + self::assertSame('a', GenericList::of('a', 'b', 'c')->findFirst()->get()); |
| 162 | + self::assertEquals(Tuple::of('a', 'b'), Map::fromArray(['a' => 'b', 'c' => 'd'])->findFirst()->get()); |
| 163 | + self::assertSame('a', Set::of('a', 'b', 'c')->findFirst()->get()); |
| 164 | + self::assertSame('a', Stream::of('a', 'b', 'c')->findFirst()->get()); |
| 165 | + self::assertSame('a', Stream::iterate('a', fn () => 'a')->findFirst()->get()); |
| 166 | + } |
148 | 167 | } |
0 commit comments