1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
<?php
declare(strict_types=1);
namespace LaminasTest\Stdlib;
use ArrayAccess;
use ArrayObject;
use Countable;
use Laminas\Stdlib\Parameters;
use Laminas\Stdlib\ParametersInterface;
use PHPUnit\Framework\TestCase;
use Serializable;
use Traversable;
final class ParametersTest extends TestCase
{
public function testParametersConstructionAndClassStructure(): void
{
$parameters = new Parameters();
self::assertInstanceOf(ParametersInterface::class, $parameters);
self::assertInstanceOf(ArrayObject::class, $parameters);
self::assertInstanceOf(ArrayAccess::class, $parameters);
self::assertInstanceOf(Countable::class, $parameters);
self::assertInstanceOf(Serializable::class, $parameters);
self::assertInstanceOf(Traversable::class, $parameters);
}
public function testParametersPersistNameAndValues(): void
{
/** @var Parameters<string, mixed> $parameters */
$parameters = new Parameters(['foo' => 'bar']);
self::assertEquals('bar', $parameters['foo']);
self::assertEquals('bar', $parameters->foo);
$parameters->offsetSet('baz', 5);
self::assertEquals(5, $parameters->baz);
$parameters->fromArray(['bar' => 'foo']);
self::assertEquals('foo', $parameters->bar);
$parameters->fromString('bar=foo&five=5');
self::assertEquals('foo', $parameters->bar);
self::assertEquals('5', $parameters->five);
self::assertEquals(['bar' => 'foo', 'five' => '5'], $parameters->toArray());
self::assertEquals('bar=foo&five=5', $parameters->toString());
$parameters->fromArray([]);
$parameters->set('foof', 'barf');
self::assertEquals('barf', $parameters->get('foof'));
self::assertEquals('barf', $parameters->foof);
}
public function testParametersOffsetGetReturnsNullIfNonexistentKeyIsProvided(): void
{
$parameters = new Parameters();
self::assertNull($parameters->foo);
}
public function testParametersGetReturnsDefaultValueIfNonExistent(): void
{
$parameters = new Parameters();
self::assertEquals(5, $parameters->get('nonExistentProp', 5));
}
}
|