DriverFactoryTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 3
dl 0
loc 51
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testCreateDriver() 0 18 1
A testCreateDriverChain() 0 29 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DoctrineModuleTest\Service;
6
7
use DoctrineModule\Service\DriverFactory;
8
use Laminas\ServiceManager\ServiceManager;
9
use PHPUnit\Framework\TestCase as BaseTestCase;
10
11
/**
12
 * Base test case to be used when a service manager instance is required
13
 */
14
class DriverFactoryTest extends BaseTestCase
15
{
16
    public function testCreateDriver() : void
17
    {
18
        $serviceManager = new ServiceManager();
19
        $serviceManager->setService(
20
            'config',
21
            [
22
                'doctrine' => [
23
                    'driver' => [
24
                        'testDriver' => ['class' => 'DoctrineModuleTest\Service\Mock\MetadataDriverMock'],
25
                    ],
26
                ],
27
            ]
28
        );
29
30
        $factory = new DriverFactory('testDriver');
31
        $driver  = $factory->createService($serviceManager);
32
        $this->assertInstanceOf('DoctrineModuleTest\Service\Mock\MetadataDriverMock', $driver);
33
    }
34
35
    public function testCreateDriverChain() : void
36
    {
37
        $serviceManager = new ServiceManager();
38
        $serviceManager->setService(
39
            'config',
40
            [
41
                'doctrine' => [
42
                    'driver' => [
43
                        'testDriver' => ['class' => 'DoctrineModuleTest\Service\Mock\MetadataDriverMock'],
44
                        'testChainDriver' => [
45
                            'class' => 'Doctrine\Persistence\Mapping\Driver\MappingDriverChain',
46
                            'drivers' => [
47
                                'Foo\Bar' => 'testDriver',
48
                                'Foo\Baz' => null,
49
                            ],
50
                        ],
51
                    ],
52
                ],
53
            ]
54
        );
55
56
        $factory = new DriverFactory('testChainDriver');
57
        $driver  = $factory->createService($serviceManager);
58
        $this->assertInstanceOf('Doctrine\Persistence\Mapping\Driver\MappingDriverChain', $driver);
59
        $drivers = $driver->getDrivers();
60
        $this->assertCount(1, $drivers);
61
        $this->assertArrayHasKey('Foo\Bar', $drivers);
62
        $this->assertInstanceOf('DoctrineModuleTest\Service\Mock\MetadataDriverMock', $drivers['Foo\Bar']);
63
    }
64
}
65