Completed
Push — master ( 63cb48...b7ca1d )
by Julián
02:17
created

AbstractManagerBuilderTest::testOptions()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 22
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 22
rs 9.2
c 0
b 0
f 0
cc 1
eloc 14
nc 1
nop 0
1
<?php
2
/**
3
 * doctrine-manager-builder (https://github.com/juliangut/doctrine-manager-builder)
4
 * Doctrine2 managers builder
5
 *
6
 * @license BSD-3-Clause
7
 * @author Julián Gutiérrez <[email protected]>
8
 */
9
10
namespace Jgut\Doctrine\ManagerBuilder\Tests;
11
12
use Doctrine\Common\Cache\CacheProvider;
13
use Doctrine\Common\Cache\VoidCache;
14
use Doctrine\Common\EventManager;
15
use Doctrine\Common\Proxy\AbstractProxyFactory;
16
use Jgut\Doctrine\ManagerBuilder\AbstractManagerBuilder;
17
18
/**
19
 * Abstract manager builder tests.
20
 */
21
class AbstractManagerBuilderTest extends \PHPUnit_Framework_TestCase
22
{
23
    public function testName()
24
    {
25
        /* @var AbstractManagerBuilder $objectBuilder */
26
        $objectBuilder = $this->getMockBuilder(AbstractManagerBuilder::class)
27
            ->disableOriginalConstructor()
28
            ->setMethodsExcept(['getName', 'setName'])
29
            ->getMockForAbstractClass();
30
31
        $objectBuilder->setName('Object_Builder');
32
33
        self::assertEquals('Object_Builder', $objectBuilder->getName());
34
    }
35
36
    public function testOptions()
37
    {
38
        $options = [
39
            'proxies_namespace' => 'MyTestProxyNamespace',
40
            'auto_generate_proxies' => AbstractProxyFactory::AUTOGENERATE_ALWAYS,
41
        ];
42
43
        /* @var AbstractManagerBuilder $objectBuilder */
44
        $objectBuilder = $this->getMockBuilder(AbstractManagerBuilder::class)
45
            ->disableOriginalConstructor()
46
            ->setMethodsExcept(['getOptions', 'getOption', 'hasOption', 'setOptions', 'setOption'])
47
            ->getMockForAbstractClass();
48
49
        $objectBuilder->setOptions($options);
50
51
        self::assertEquals($options, $objectBuilder->getOptions());
52
        self::assertTrue($objectBuilder->hasOption('auto_generate_proxies'));
53
        self::assertEquals('MyTestProxyNamespace', $objectBuilder->getOption('proxies_namespace'));
54
55
        $objectBuilder->setOption('proxies_path', [__DIR__]);
56
        self::assertEquals([__DIR__], $objectBuilder->getOption('proxies_path'));
57
    }
58
59
    public function testMetadataCache()
60
    {
61
        /* @var AbstractManagerBuilder $objectBuilder */
62
        $objectBuilder = $this->getMockBuilder(AbstractManagerBuilder::class)
63
            ->disableOriginalConstructor()
64
            ->setMethodsExcept([
65
                'getOption',
66
                'setOption',
67
                'getMetadataCacheDriver',
68
                'setMetadataCacheDriver',
69
            ])
70
            ->getMockForAbstractClass();
71
72
        self::assertInstanceOf(CacheProvider::class, $objectBuilder->getMetadataCacheDriver());
73
74
        /* @var CacheProvider $metadataCacheDriver */
75
        $metadataCacheDriver = $this->getMockBuilder(VoidCache::class)
76
            ->disableOriginalConstructor()
77
            ->getMock();
78
        $objectBuilder->setMetadataCacheDriver($metadataCacheDriver);
79
80
        self::assertEquals($metadataCacheDriver, $objectBuilder->getMetadataCacheDriver());
81
    }
82
83
    public function testEventManager()
84
    {
85
        /* @var AbstractManagerBuilder $objectBuilder */
86
        $objectBuilder = $this->getMockBuilder(AbstractManagerBuilder::class)
87
            ->disableOriginalConstructor()
88
            ->setMethodsExcept(['getEventManager', 'setEventManager'])
89
            ->getMockForAbstractClass();
90
91
        self::assertInstanceOf(EventManager::class, $objectBuilder->getEventManager());
92
93
        /* @var EventManager $eventManager */
94
        $eventManager = $this->getMockBuilder(EventManager::class)
95
            ->disableOriginalConstructor()
96
            ->getMock();
97
        $objectBuilder->setEventManager($eventManager);
98
99
        self::assertEquals($eventManager, $objectBuilder->getEventManager());
100
    }
101
}
102