Completed
Pull Request — master (#440)
by Alejandro
17:40 queued 14:38
created

createsNewConnectionRemovingDbNameFromOriginalConnectionParams()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 23
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 18
c 1
b 0
f 0
dl 0
loc 23
rs 9.6666
cc 1
nc 1
nop 0
1
<?php
2
declare(strict_types=1);
3
4
namespace ShlinkioTest\Shlink\Common\Doctrine;
5
6
use Doctrine\DBAL\Connection;
7
use Doctrine\DBAL\Driver;
8
use PHPUnit\Framework\TestCase;
9
use Prophecy\Prophecy\ObjectProphecy;
10
use Psr\Container\ContainerInterface;
11
use Shlinkio\Shlink\Common\Doctrine\NoDbNameConnectionFactory;
12
13
class NoDbNameConnectionFactoryTest extends TestCase
14
{
15
    /** @var NoDbNameConnectionFactory */
16
    private $factory;
17
    /** @var ObjectProphecy */
18
    private $container;
19
    /** @var ObjectProphecy */
20
    private $originalConn;
21
22
    public function setUp(): void
23
    {
24
        $this->container = $this->prophesize(ContainerInterface::class);
25
        $this->originalConn = $this->prophesize(Connection::class);
26
        $this->container->get(Connection::class)->willReturn($this->originalConn->reveal());
27
28
        $this->factory = new NoDbNameConnectionFactory();
29
    }
30
31
    /** @test */
32
    public function createsNewConnectionRemovingDbNameFromOriginalConnectionParams(): void
33
    {
34
        $params = [
35
            'username' => 'foo',
36
            'password' => 'bar',
37
            'dbname' => 'something',
38
        ];
39
        $getOriginalParams = $this->originalConn->getParams()->willReturn($params);
40
        $getOriginalDriver = $this->originalConn->getDriver()->willReturn($this->prophesize(Driver::class)->reveal());
41
        $getOriginalConfig = $this->originalConn->getConfiguration()->willReturn(null);
42
        $getOriginalEvents = $this->originalConn->getEventManager()->willReturn(null);
43
44
        $conn = ($this->factory)($this->container->reveal());
45
46
        $this->assertEquals([
47
            'username' => 'foo',
48
            'password' => 'bar',
49
        ], $conn->getParams());
50
        $getOriginalParams->shouldHaveBeenCalledOnce();
51
        $getOriginalDriver->shouldHaveBeenCalledOnce();
52
        $getOriginalConfig->shouldHaveBeenCalledOnce();
53
        $getOriginalEvents->shouldHaveBeenCalledOnce();
54
        $this->container->get(Connection::class)->shouldHaveBeenCalledOnce();
55
    }
56
}
57