Completed
Push — master ( e56856...67d12b )
by Antonio
04:26
created

AbstractMySqlDatabaseTestCase   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 7
c 1
b 0
f 0
lcom 1
cbo 3
dl 0
loc 51
rs 10
1
<?php
2
namespace Da\Mailer\Test;
3
4
use Da\Mailer\Queue\Backend\Pdo\PdoQueueStoreConnection;
5
use Da\Mailer\Test\Fixture\FixtureHelper;
6
use PHPUnit_Extensions_Database_TestCase;
7
8
abstract class AbstractMySqlDatabaseTestCase extends PHPUnit_Extensions_Database_TestCase
9
{
10
    protected static function getPdoQueueStoreConnection()
11
    {
12
        static $pdoQueue;
13
14
        if ($pdoQueue === null) {
15
            $pdoQueue = new PdoQueueStoreConnection(FixtureHelper::getMySqlConnectionConfiguration());
16
        }
17
18
        return $pdoQueue;
19
    }
20
21
    /**
22
     * {@inheritdoc}
23
     */
24
    protected function getConnection()
25
    {
26
        $pdo = self::getPdoQueueStoreConnection();
27
28
        return $this->createDefaultDBConnection($pdo->getInstance());
29
    }
30
31
    /**
32
     * {@inheritdoc}
33
     */
34
    protected function getDataSet()
35
    {
36
        return $this->createFlatXMLDataSet(__DIR__ . '/data/test.xml');
37
    }
38
39
    /**
40
     * {@inheritdoc}
41
     */
42
    protected function setUp()
43
    {
44
        $sql = file_get_contents(__DIR__ . '/migrations/mysql.sql');
45
46
        $statements = array_map('trim', array_filter(explode(';', $sql)));
47
48
        foreach ($statements as $sqlQuery) {
49
            if (empty($sqlQuery)) {
50
                continue;
51
            }
52
            $query = self::getPdoQueueStoreConnection()->getInstance()->prepare($sqlQuery);
53
            $query->execute();
54
        }
55
56
        parent::setUp();
57
    }
58
}
59