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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
<?php
declare(strict_types=1);
namespace Doctrine\DBAL\Tests\Schema;
use Doctrine\DBAL\Exception;
use Doctrine\DBAL\Schema\Column;
use Doctrine\DBAL\Schema\Name\Identifier;
use Doctrine\DBAL\Schema\PrimaryKeyConstraint;
use Doctrine\DBAL\Schema\Sequence;
use Doctrine\DBAL\Schema\Table;
use Doctrine\DBAL\Types\Types;
use Doctrine\Deprecations\PHPUnit\VerifyDeprecations;
use PHPUnit\Framework\TestCase;
class SequenceTest extends TestCase
{
use VerifyDeprecations;
public function testIsAutoincrementFor(): void
{
$table = Table::editor()
->setUnquotedName('foo')
->setColumns(
Column::editor()
->setUnquotedName('id')
->setTypeName(Types::INTEGER)
->setAutoincrement(true)
->create(),
)
->setPrimaryKeyConstraint(
PrimaryKeyConstraint::editor()
->setUnquotedColumnNames('id')
->create(),
)
->create();
$sequence = new Sequence('foo_id_seq');
$sequence2 = new Sequence('bar_id_seq');
$sequence3 = new Sequence('other.foo_id_seq');
self::assertTrue($sequence->isAutoIncrementsFor($table));
self::assertFalse($sequence2->isAutoIncrementsFor($table));
self::assertFalse($sequence3->isAutoIncrementsFor($table));
}
public function testIsAutoincrementForCaseInsensitive(): void
{
$table = Table::editor()
->setUnquotedName('foo')
->setColumns(
Column::editor()
->setUnquotedName('ID')
->setTypeName(Types::INTEGER)
->setAutoincrement(true)
->create(),
)
->setPrimaryKeyConstraint(
PrimaryKeyConstraint::editor()
->setUnquotedColumnNames('ID')
->create(),
)
->create();
$sequence = new Sequence('foo_id_seq');
$sequence1 = new Sequence('foo_ID_seq');
$sequence2 = new Sequence('bar_id_seq');
$sequence3 = new Sequence('bar_ID_seq');
$sequence4 = new Sequence('other.foo_id_seq');
self::assertTrue($sequence->isAutoIncrementsFor($table));
self::assertTrue($sequence1->isAutoIncrementsFor($table));
self::assertFalse($sequence2->isAutoIncrementsFor($table));
self::assertFalse($sequence3->isAutoIncrementsFor($table));
self::assertFalse($sequence4->isAutoIncrementsFor($table));
}
public function testEmptyName(): void
{
$this->expectDeprecationWithIdentifier('https://github.com/doctrine/dbal/pull/6646');
new Sequence('');
}
public function testOverqualifiedName(): void
{
$this->expectDeprecationWithIdentifier('https://github.com/doctrine/dbal/pull/6592');
new Sequence('identity.auth.user_id_seq');
}
/** @throws Exception */
public function testGetUnqualifiedObjectName(): void
{
$sequence = new Sequence('user_id_seq');
$name = $sequence->getObjectName();
self::assertEquals(Identifier::unquoted('user_id_seq'), $name->getUnqualifiedName());
self::assertNull($name->getQualifier());
}
/** @throws Exception */
public function testGetQualifiedObjectName(): void
{
$sequence = new Sequence('auth.user_id_seq');
$name = $sequence->getObjectName();
self::assertEquals(Identifier::unquoted('user_id_seq'), $name->getUnqualifiedName());
self::assertEquals(Identifier::unquoted('auth'), $name->getQualifier());
}
}
|