OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
firebase
/
vendor
/
ramsey
/
collection
/
tests
/
Map
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
08/12/2024 10:34:29 AM
rwxr-xr-x
📄
AssociativeArrayMapTest.php
7.22 KB
08/12/2024 10:34:29 AM
rw-r--r--
📄
NamedParameterMapTest.php
5.33 KB
08/12/2024 10:34:29 AM
rw-r--r--
📄
TypedMapTest.php
2.9 KB
08/12/2024 10:34:29 AM
rw-r--r--
Editing: TypedMapTest.php
Close
<?php declare(strict_types=1); namespace Ramsey\Collection\Test\Map; use Ramsey\Collection\Exception\InvalidArgumentException; use Ramsey\Collection\Map\TypedMap; use Ramsey\Collection\Map\TypedMapInterface; use Ramsey\Collection\Test\TestCase; use function array_keys; /** * Tests for TypedMap */ class TypedMapTest extends TestCase { public function testConstructor(): void { /** @var TypedMap<int, string> $typed */ $typed = new TypedMap('int', 'string'); $this->assertInstanceOf(TypedMapInterface::class, $typed); $this->assertSame('int', $typed->getKeyType()); $this->assertSame('string', $typed->getValueType()); /** @psalm-suppress TypeDoesNotContainType */ $this->assertEmpty($typed); /** @psalm-suppress NoValue */ $this->assertCount(0, $typed); } public function testConstructorWithValues(): void { $content = [0 => '0', 1 => '1', 2 => '4', 3 => '8', 4 => '16']; $keys = array_keys($content); /** @var TypedMap<int, string> $map */ $map = new TypedMap('int', 'string', $content); $this->assertSame($keys, $map->keys()); foreach ($keys as $key) { $this->assertSame($content[$key], $map->get($key)); } } public function testConstructorAddWrongKeyType(): void { /** @var TypedMap<string, mixed> $map */ $map = new TypedMap('string', 'mixed'); $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Key must be of type string; key is'); /** * @phpstan-ignore-next-line * @psalm-suppress InvalidArgument */ $map[9] = 'foo'; } public function testConstructorAllowAddEmptyKey(): void { /** @var TypedMap<string, mixed> $map */ $map = new TypedMap('string', 'mixed'); $map[''] = 'foo'; $this->assertSame([''], $map->keys()); } public function testConstructorAddWrongValueType(): void { /** @var TypedMap<string, string> $map */ $map = new TypedMap('string', 'string'); $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Value must be of type string; value is'); /** * @phpstan-ignore-next-line * @psalm-suppress InvalidArgument */ $map['foo'] = 9; } public function testNullKeyRaisesException(): void { /** @var TypedMap<string, mixed> $map */ $map = new TypedMap('string', 'mixed'); $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Key must be of type string; key is NULL'); /** * @phpstan-ignore-next-line * @psalm-suppress NullArgument */ $map[] = 'foo'; } }