|
5 | 5 | namespace Fschmtt\Keycloak\Test\Unit\Type;
|
6 | 6 |
|
7 | 7 | use Fschmtt\Keycloak\Type\Map;
|
| 8 | +use OutOfBoundsException; |
8 | 9 | use PHPUnit\Framework\Attributes\CoversClass;
|
9 | 10 | use PHPUnit\Framework\TestCase;
|
10 | 11 |
|
@@ -61,4 +62,61 @@ public function testCanBeCounted(): void
|
61 | 62 |
|
62 | 63 | static::assertCount(3, $map);
|
63 | 64 | }
|
| 65 | + |
| 66 | + public function testContains(): void |
| 67 | + { |
| 68 | + $map = new Map(['key-1' => 'value-1', 'key-2' => 'value-2']); |
| 69 | + |
| 70 | + static::assertTrue($map->contains('key-1')); |
| 71 | + static::assertTrue($map->contains('key-2')); |
| 72 | + static::assertFalse($map->contains('key-3')); |
| 73 | + } |
| 74 | + |
| 75 | + public function testGet(): void |
| 76 | + { |
| 77 | + $map = new Map(['key-1' => 'value-1', 'key-2' => 'value-2']); |
| 78 | + |
| 79 | + static::assertSame('value-1', $map->get('key-1')); |
| 80 | + static::assertSame('value-2', $map->get('key-2')); |
| 81 | + } |
| 82 | + |
| 83 | + public function testGetThrows(): void |
| 84 | + { |
| 85 | + $map = new Map(['key-1' => 'value-1', 'key-2' => 'value-2']); |
| 86 | + |
| 87 | + static::expectException(OutOfBoundsException::class); |
| 88 | + static::expectExceptionMessage('Key "key-3" does not exist in map'); |
| 89 | + |
| 90 | + $map->get('key-3'); |
| 91 | + } |
| 92 | + |
| 93 | + public function testWith(): void |
| 94 | + { |
| 95 | + $map = new Map(['key-1' => 'value-1', 'key-2' => 'value-2']); |
| 96 | + |
| 97 | + $updatedMap = $map->with('key-3', 'value-3'); |
| 98 | + |
| 99 | + static::assertNotSame($map, $updatedMap); |
| 100 | + static::assertCount(2, $map); |
| 101 | + static::assertCount(3, $updatedMap); |
| 102 | + } |
| 103 | + |
| 104 | + public function testWithout(): void |
| 105 | + { |
| 106 | + $map = new Map(['key-1' => 'value-1', 'key-2' => 'value-2']); |
| 107 | + |
| 108 | + $updatedMap = $map->without('key-2'); |
| 109 | + |
| 110 | + static::assertNotSame($map, $updatedMap); |
| 111 | + static::assertCount(2, $map); |
| 112 | + static::assertCount(1, $updatedMap); |
| 113 | + } |
| 114 | + |
| 115 | + public function testGetMap(): void |
| 116 | + { |
| 117 | + $inner = ['key-1' => 'value-1', 'key-2' => 'value-2']; |
| 118 | + $map = new Map($inner); |
| 119 | + |
| 120 | + static::assertSame($inner, $map->getMap()); |
| 121 | + } |
64 | 122 | }
|
0 commit comments