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

namespace Doctrine\Tests\DBAL\Functional\Ticket;

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

8 9 10
/**
 * @group DBAL-202
 */
Sergei Morozov's avatar
Sergei Morozov committed
11
class DBAL202Test extends DbalFunctionalTestCase
12 13 14 15 16
{
    protected function setUp()
    {
        parent::setUp();

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

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

Sergei Morozov's avatar
Sergei Morozov committed
28
            $this->connection->getSchemaManager()->createTable($table);
29 30 31 32 33
        }
    }

    public function testStatementRollback()
    {
Sergei Morozov's avatar
Sergei Morozov committed
34 35
        $stmt = $this->connection->prepare('INSERT INTO DBAL202 VALUES (8)');
        $this->connection->beginTransaction();
36
        $stmt->execute();
Sergei Morozov's avatar
Sergei Morozov committed
37
        $this->connection->rollBack();
38

Sergei Morozov's avatar
Sergei Morozov committed
39
        self::assertEquals(0, $this->connection->query('SELECT COUNT(1) FROM DBAL202')->fetchColumn());
40 41 42 43
    }

    public function testStatementCommit()
    {
Sergei Morozov's avatar
Sergei Morozov committed
44 45
        $stmt = $this->connection->prepare('INSERT INTO DBAL202 VALUES (8)');
        $this->connection->beginTransaction();
46
        $stmt->execute();
Sergei Morozov's avatar
Sergei Morozov committed
47
        $this->connection->commit();
48

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