packages/ztd-query-core/tests/Unit/Schema/RowSetTest.php

1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Schema;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\TestCase;
9use stdClass;
10use ZtdQuery\Schema\RowSet;
11
12#[CoversClass(RowSet::class)]
13final class RowSetTest extends TestCase
14{
15    public function testRetainsRowKeysAndOpaqueValues(): void
16    {
17        $object = new stdClass();
18        $rows = [7 => ['payload' => ['value' => $object]], 12 => ['payload' => null]];
19        $snapshot = new RowSet($rows);
20        $rows[7]['payload'] = 'changed';
21
22        self::assertSame([7 => ['payload' => ['value' => $object]], 12 => ['payload' => null]], $snapshot->rows);
23    }
24
25    public function testStartsWithAnEmptySnapshot(): void
26    {
27        self::assertSame([], (new RowSet())->rows);
28    }
29}
30