SequenceTest.php 1.57 KB
Newer Older
1 2 3 4 5
<?php

namespace Doctrine\Tests\DBAL\Schema;

use Doctrine\DBAL\Schema\Sequence;
jeroendedauw's avatar
jeroendedauw committed
6
use Doctrine\DBAL\Schema\Table;
Sergei Morozov's avatar
Sergei Morozov committed
7
use Doctrine\Tests\DbalTestCase;
8

Sergei Morozov's avatar
Sergei Morozov committed
9
class SequenceTest extends DbalTestCase
10 11 12 13
{
    /**
     * @group DDC-1657
     */
14
    public function testIsAutoincrementFor() : void
15
    {
Sergei Morozov's avatar
Sergei Morozov committed
16 17 18
        $table = new Table('foo');
        $table->addColumn('id', 'integer', ['autoincrement' => true]);
        $table->setPrimaryKey(['id']);
19

Sergei Morozov's avatar
Sergei Morozov committed
20 21 22
        $sequence  = new Sequence('foo_id_seq');
        $sequence2 = new Sequence('bar_id_seq');
        $sequence3 = new Sequence('other.foo_id_seq');
23

24 25 26
        self::assertTrue($sequence->isAutoIncrementsFor($table));
        self::assertFalse($sequence2->isAutoIncrementsFor($table));
        self::assertFalse($sequence3->isAutoIncrementsFor($table));
27
    }
Daniel Hensby's avatar
Daniel Hensby committed
28

29
    public function testIsAutoincrementForCaseInsensitive() : void
Daniel Hensby's avatar
Daniel Hensby committed
30 31
    {
        $table = new Table('foo');
Sergei Morozov's avatar
Sergei Morozov committed
32 33
        $table->addColumn('ID', 'integer', ['autoincrement' => true]);
        $table->setPrimaryKey(['ID']);
Daniel Hensby's avatar
Daniel Hensby committed
34

Sergei Morozov's avatar
Sergei Morozov committed
35 36 37 38 39
        $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');
Daniel Hensby's avatar
Daniel Hensby committed
40

41 42 43 44 45
        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));
Daniel Hensby's avatar
Daniel Hensby committed
46
    }
47
}