Completed
Push — master ( 1e9486...bfbbca )
by Julián
02:20
created

EntityManagerBuilderTest   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 121
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 7
c 2
b 0
f 0
lcom 1
cbo 3
dl 0
loc 121
rs 10

7 Methods

Rating   Name   Duplication   Size   Complexity  
A testBadCacheDriver() 0 8 1
A testNoMetadata() 0 11 1
A testBadNamingStrategy() 0 9 1
A testNoCreation() 0 11 1
A testAnnotationsCreation() 0 12 1
A testXMLCreation() 0 12 1
A testYAMLCreation() 0 12 1
1
<?php
2
/**
3
 * Slim3 Doctrine integration (https://github.com/juliangut/slim-doctrine)
4
 *
5
 * @link https://github.com/juliangut/slim-doctrine for the canonical source repository
6
 *
7
 * @license https://raw.githubusercontent.com/juliangut/slim-doctrine/master/LICENSE
8
 */
9
10
namespace Jgut\Slim\Doctrine\Tests;
11
12
use Jgut\Slim\Doctrine\EntityManagerBuilder;
13
use Doctrine\Common\Proxy\AbstractProxyFactory;
14
15
/**
16
 * @covers Jgut\Slim\Doctrine\EntityManagerBuilder
17
 */
18
class EntityManagerBuilderTest extends \PHPUnit_Framework_TestCase
19
{
20
    /**
21
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::build
22
     *
23
     * @expectedException \InvalidArgumentException
24
     */
25
    public function testBadCacheDriver()
26
    {
27
        $options = [
28
            'cache_driver' => 'notValid',
29
        ];
30
31
        EntityManagerBuilder::build($options);
32
    }
33
34
    /**
35
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::build
36
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::setupAnnotationMetadata
37
     *
38
     * @expectedException \InvalidArgumentException
39
     */
40
    public function testNoMetadata()
41
    {
42
        $options = [
43
            'annotation_files' => [dirname(__DIR__) . '/files/fakeAnnotationFile.php'],
44
            'annotation_namespaces' => ['\Jgut\Slim\Doctrine'],
45
            'annotation_autoloaders' => [function () {
46
            }],
47
        ];
48
49
        EntityManagerBuilder::build($options);
50
    }
51
52
    /**
53
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::build
54
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::createConfiguration
55
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::normalizePaths
56
     *
57
     * @expectedException \InvalidArgumentException
58
     */
59
    public function testBadNamingStrategy()
60
    {
61
        $options = [
62
            'annotation_paths' => sys_get_temp_dir(),
63
            'naming_strategy' => 'notValid',
64
        ];
65
66
        EntityManagerBuilder::build($options);
67
    }
68
69
    /**
70
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::build
71
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::setupProxy
72
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::setupSQLLogger
73
     *
74
     * @expectedException \InvalidArgumentException
75
     */
76
    public function testNoCreation()
77
    {
78
        $options = [
79
            'annotation_paths' => sys_get_temp_dir(),
80
            'proxies_namespace' => 'myNamespace\Proxies',
81
            'auto_generate_proxies' => AbstractProxyFactory::AUTOGENERATE_ALWAYS,
82
            'sql_logger' => new \Doctrine\DBAL\Logging\EchoSQLLogger,
83
        ];
84
85
        EntityManagerBuilder::build($options);
86
    }
87
88
    /**
89
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::build
90
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::createConfiguration
91
     */
92
    public function testAnnotationsCreation()
93
    {
94
        $options = [
95
            'connection' => [
96
                'driver' => 'pdo_sqlite',
97
                'memory' => true,
98
            ],
99
            'annotation_paths' => sys_get_temp_dir(),
100
        ];
101
102
        $this->assertInstanceOf('\Doctrine\ORM\EntityManager', EntityManagerBuilder::build($options));
103
    }
104
105
    /**
106
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::build
107
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::createConfiguration
108
     */
109
    public function testXMLCreation()
110
    {
111
        $options = [
112
            'connection' => [
113
                'driver' => 'pdo_sqlite',
114
                'memory' => true,
115
            ],
116
            'xml_paths' => [dirname(__DIR__) . '/files/fakeAnnotationFile.php'],
117
        ];
118
119
        $this->assertInstanceOf('\Doctrine\ORM\EntityManager', EntityManagerBuilder::build($options));
120
    }
121
122
    /**
123
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::build
124
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::createConfiguration
125
     */
126
    public function testYAMLCreation()
127
    {
128
        $options = [
129
            'connection' => [
130
                'driver' => 'pdo_sqlite',
131
                'memory' => true,
132
            ],
133
            'yaml_paths' => [dirname(__DIR__) . '/files/fakeAnnotationFile.php'],
134
        ];
135
136
        $this->assertInstanceOf('\Doctrine\ORM\EntityManager', EntityManagerBuilder::build($options));
137
    }
138
}
139