Passed
Push — main ( 9c59f2...5fac80 )
by Peter
02:52
created

testRegisterBindingsThrowsInvalidDriverException()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 6
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 12
rs 10
1
<?php
2
3
namespace AbterPhp\Framework\Bootstrappers\Vendor;
4
5
use AbterPhp\Framework\Environments\Environment;
6
use AbterPhp\Framework\Exception\Config;
7
use Opulence\Databases\Adapters\Pdo\MySql\Driver as MySqlDriver;
8
use Opulence\Databases\Adapters\Pdo\PostgreSql\Driver as PostgreSqlDriver;
9
use Opulence\Ioc\Container;
10
use PDOException;
11
use PHPUnit\Framework\TestCase;
12
13
class CasbinDatabaseAdapterBootstrapperTest extends TestCase
14
{
15
    /** @var CasbinDatabaseAdapterBootstrapper */
16
    protected CasbinDatabaseAdapterBootstrapper $sut;
17
18
    public function setUp(): void
19
    {
20
        $this->sut = new CasbinDatabaseAdapterBootstrapper();
21
    }
22
23
    protected function tearDown(): void
24
    {
25
        Environment::unsetVar('DB_DRIVER');
26
    }
27
28
    public function testRegisterBindingsPostgresTriesToConnectToDB()
29
    {
30
        Environment::setVar('DB_DRIVER', PostgreSqlDriver::class);
31
32
        $this->expectException(PDOException::class);
33
        $this->expectErrorMessageMatches('/No such file or directory/');
34
35
        $container = new Container();
36
37
        $this->sut->registerBindings($container);
38
    }
39
40
    public function testRegisterBindingsMySQLTriesToConnectToDB()
41
    {
42
        Environment::setVar('DB_DRIVER', MySqlDriver::class);
43
44
        $this->expectException(PDOException::class);
45
        $this->expectErrorMessageMatches('/No such file or directory/');
46
47
        $container = new Container();
48
49
        $this->sut->registerBindings($container);
50
    }
51
52
    public function testRegisterBindingsThrowsInvalidDriverException()
53
    {
54
        $dbDriverClassStub = 'FooClass';
55
56
        Environment::setVar('DB_DRIVER', $dbDriverClassStub);
57
58
        $this->expectException(Config::class);
59
        $this->expectErrorMessageMatches("/$dbDriverClassStub/");
60
61
        $container = new Container();
62
63
        $this->sut->registerBindings($container);
64
    }
65
}
66