Failed Conditions
Pull Request — master (#3033)
by Aleksey
14:59
created

DriverTest::skipWhenNotUsingPdoSqlsrv()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 3
eloc 2
nc 2
nop 0
1
<?php
2
3
namespace Doctrine\Tests\DBAL\Driver\PDOSqlsrv;
4
5
use Doctrine\DBAL\Driver\PDOSqlsrv\Driver;
6
use Doctrine\Tests\DBAL\Driver\AbstractSQLServerDriverTest;
7
use PDO;
8
9
class DriverTest extends AbstractSQLServerDriverTest
10
{
11
    public function testReturnsName()
12
    {
13
        self::assertSame('pdo_sqlsrv', $this->driver->getName());
14
    }
15
16
    protected function createDriver()
17
    {
18
        return new Driver();
19
    }
20
21
    public function testConnectionOptions()
22
    {
23
        $this->skipWhenNotUsingPdoSqlsrv();
24
25
        $connection = $this->getConnection([
26
            'APP' => 'APP_NAME',
27
            'WSID' => 'WSID_NAME',
28
        ]);
29
30
        $result = $connection->query("select APP_NAME() as app,  HOST_NAME() as host")->fetch();
31
32
        self::assertSame('APP_NAME', $result['app']);
33
        self::assertSame('WSID_NAME', $result['host']);
34
    }
35
36
    public function testDriverOptions()
37
    {
38
        $this->skipWhenNotUsingPdoSqlsrv();
39
        
40
        $connection = $this->getConnection([
41
            PDO::ATTR_CASE => PDO::CASE_UPPER,
42
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
43
        ]);
44
45
        self::assertSame(PDO::CASE_UPPER, $connection->getAttribute(PDO::ATTR_CASE));
46
        self::assertSame(PDO::FETCH_ASSOC, $connection->getAttribute(PDO::ATTR_DEFAULT_FETCH_MODE));
47
    }
48
49
    private function getConnection($driverOptions) {
50
        return $this->createDriver()->connect(
51
            array(
52
                'host' => $GLOBALS['db_host'],
53
                'port' => $GLOBALS['db_port']
54
            ),
55
            $GLOBALS['db_username'],
56
            $GLOBALS['db_password'],
57
            $driverOptions
58
        );
59
    }
60
61
    /**
62
     * @throws \PHPUnit_Framework_SkippedTestError
63
     */
64
    private function skipWhenNotUsingPdoSqlsrv()
65
    {
66
        if (! (isset($GLOBALS['db_type']) && $GLOBALS['db_type'] === 'pdo_sqlsrv')) {
67
            $this->markTestSkipped('Test enabled only when using pdo_sqlsrv specific phpunit.xml');
68
        }
69
    }
70
}
71