packages/ztd-query-mysql/tests/Unit/Shadow/Mutation/Table/Alter/StoredColumnsTest.php

1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Shadow\Mutation\Table\Alter;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\TestCase;
9use ZtdQuery\Platform\MySql\Shadow\Mutation\Table\Alter\StoredColumns;
10
11#[CoversClass(StoredColumns::class)]
12final class StoredColumnsTest extends TestCase
13{
14    public function testRemoveColumnFromStore(): void
15    {
16        $store = new \ZtdQuery\Shadow\ShadowStore();
17        $store->set('t', [['id' => 1, 'name' => null], ['id' => 2]]);
18        (new StoredColumns('t'))->removeColumnFromStore($store, 'name');
19        self::assertSame([['id' => 1], ['id' => 2]], $store->get('t'));
20        (new StoredColumns('missing'))->removeColumnFromStore($store, 'name');
21        self::assertSame([], $store->get('missing'));
22    }
23
24    public function testRenameColumnInStore(): void
25    {
26        $store = new \ZtdQuery\Shadow\ShadowStore();
27        $store->set('t', [['id' => 1, 'name' => null], ['id' => 2]]);
28        (new StoredColumns('t'))->renameColumnInStore($store, 'name', 'label');
29        self::assertSame([['id' => 1, 'label' => null], ['id' => 2]], $store->get('t'));
30        (new StoredColumns('missing'))->renameColumnInStore($store, 'name', 'label');
31        self::assertSame([], $store->get('missing'));
32    }
33
34}
35