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
|
<?php
declare(strict_types=1);
namespace LaminasTest\Stdlib;
use Laminas\Stdlib\SplStack;
use PHPUnit\Framework\Attributes\Group;
use PHPUnit\Framework\TestCase;
use function count;
use function iterator_to_array;
use function serialize;
use function unserialize;
use function var_export;
#[Group('Laminas_Stdlib')]
final class SplStackTest extends TestCase
{
/** @var SplStack */
protected $stack;
protected function setUp(): void
{
$this->stack = new SplStack();
$this->stack->push('foo');
$this->stack->push('bar');
$this->stack->push('baz');
$this->stack->push('bat');
}
public function testSerializationAndDeserializationShouldMaintainState(): void
{
$s = serialize($this->stack);
$unserialized = unserialize($s);
self::assertInstanceOf(SplStack::class, $unserialized);
self::assertSame(count($this->stack), count($unserialized));
$expected = iterator_to_array($this->stack);
$test = iterator_to_array($unserialized);
self::assertSame($expected, $test);
}
public function testCanRetrieveQueueAsArray(): void
{
$expected = ['bat', 'baz', 'bar', 'foo'];
$test = $this->stack->toArray();
self::assertSame($expected, $test, var_export($test, true));
}
}
|