DBAL202Test.php 1.45 KB
Newer Older
1 2 3 4
<?php

namespace Doctrine\Tests\DBAL\Functional\Ticket;

Sergei Morozov's avatar
Sergei Morozov committed
5 6 7 8
use Doctrine\DBAL\Schema\Table;
use Doctrine\Tests\DbalFunctionalTestCase;

class DBAL202Test extends DbalFunctionalTestCase
9
{
10
    protected function setUp(): void
11 12 13
    {
        parent::setUp();

Sergei Morozov's avatar
Sergei Morozov committed
14
        if ($this->connection->getDatabasePlatform()->getName() !== 'oracle') {
15 16 17
            $this->markTestSkipped('OCI8 only test');
        }

Sergei Morozov's avatar
Sergei Morozov committed
18 19
        if ($this->connection->getSchemaManager()->tablesExist('DBAL202')) {
            $this->connection->exec('DELETE FROM DBAL202');
20
        } else {
Sergei Morozov's avatar
Sergei Morozov committed
21
            $table = new Table('DBAL202');
22
            $table->addColumn('id', 'integer');
Sergei Morozov's avatar
Sergei Morozov committed
23
            $table->setPrimaryKey(['id']);
24

Sergei Morozov's avatar
Sergei Morozov committed
25
            $this->connection->getSchemaManager()->createTable($table);
26 27 28
        }
    }

29
    public function testStatementRollback(): void
30
    {
Sergei Morozov's avatar
Sergei Morozov committed
31 32
        $stmt = $this->connection->prepare('INSERT INTO DBAL202 VALUES (8)');
        $this->connection->beginTransaction();
33
        $stmt->execute();
Sergei Morozov's avatar
Sergei Morozov committed
34
        $this->connection->rollBack();
35

Sergei Morozov's avatar
Sergei Morozov committed
36
        self::assertEquals(0, $this->connection->query('SELECT COUNT(1) FROM DBAL202')->fetchColumn());
37 38
    }

39
    public function testStatementCommit(): void
40
    {
Sergei Morozov's avatar
Sergei Morozov committed
41 42
        $stmt = $this->connection->prepare('INSERT INTO DBAL202 VALUES (8)');
        $this->connection->beginTransaction();
43
        $stmt->execute();
Sergei Morozov's avatar
Sergei Morozov committed
44
        $this->connection->commit();
45

Sergei Morozov's avatar
Sergei Morozov committed
46
        self::assertEquals(1, $this->connection->query('SELECT COUNT(1) FROM DBAL202')->fetchColumn());
47 48
    }
}