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

DriverTest::skipWhenNotUsingPdoSqlsrv()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 3
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
    {
51
        return $this->createDriver()->connect(
52
            [
53
                'host' => $GLOBALS['db_host'],
54
                'port' => $GLOBALS['db_port'],
55
            ],
56
            $GLOBALS['db_username'],
57
            $GLOBALS['db_password'],
58
            $driverOptions
59
        );
60
    }
61
62
    /**
63
     * @throws \PHPUnit_Framework_SkippedTestError
64
     */
65
    private function skipWhenNotUsingPdoSqlsrv()
66
    {
67
        if (isset($GLOBALS['db_type']) && $GLOBALS['db_type'] === 'pdo_sqlsrv') {
68
            return;
69
        }
70
71
        $this->markTestSkipped('Test enabled only when using pdo_sqlsrv specific phpunit.xml');
72
    }
73
}
74