Completed
Push — master ( c18060...1e9486 )
by Julián
02:21 queued 21s
created

EntityManagerBuilderTest::testCreation()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 15
rs 9.4286
cc 1
eloc 10
nc 1
nop 0
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
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::getOption
23
     *
24
     * @expectedException \InvalidArgumentException
25
     */
26
    public function testBadCacheDriver()
27
    {
28
        $options = [
29
            'cache_driver' => 'notValid',
30
        ];
31
32
        EntityManagerBuilder::build($options);
33
    }
34
35
    /**
36
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::build
37
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::setupNamingStrategy
38
     *
39
     * @expectedException \InvalidArgumentException
40
     */
41
    public function testBadNamingStrategy()
42
    {
43
        $options = [
44
            'naming_strategy' => 'notValid',
45
        ];
46
47
        EntityManagerBuilder::build($options);
48
    }
49
50
    /**
51
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::build
52
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::setupAnnotationMetadata
53
     *
54
     * @expectedException \InvalidArgumentException
55
     */
56
    public function testNoMetadataDriver()
57
    {
58
        $options = [
59
            'annotation_files' => [dirname(__DIR__) . '/files/fakeAnnotationFile.php'],
60
            'annotation_namespaces' => ['\Jgut\Slim\Doctrine'],
61
            'annotation_autoloaders' => [function () {
62
            }],
63
        ];
64
65
        EntityManagerBuilder::build($options);
66
    }
67
68
    /**
69
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::build
70
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::setupMetadataDriver
71
     *
72
     * @expectedException \InvalidArgumentException
73
     */
74
    public function testNoDriversConnection()
75
    {
76
        $options = [
77
            'annotation_paths' => sys_get_temp_dir(),
78
            'xml_paths' => [dirname(__DIR__) . '/files/fakeAnnotationFile.php'],
79
            'yaml_paths' => [dirname(__DIR__) . '/files/fakeAnnotationFile.php'],
80
        ];
81
82
        EntityManagerBuilder::build($options);
83
    }
84
85
    /**
86
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::setupAnnotationMetadata
87
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::setupProxy
88
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::setupSQLLogger
89
     * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::setupMetadataDriver
90
     */
91
    public function testCreation()
92
    {
93
        $options = [
94
            'connection' => [
95
                'driver' => 'pdo_sqlite',
96
                'memory' => true,
97
            ],
98
            'annotation_paths' => sys_get_temp_dir(),
99
            'proxies_namespace' => 'myNamespace\Proxies',
100
            'auto_generate_proxies' => AbstractProxyFactory::AUTOGENERATE_ALWAYS,
101
            'sql_logger' => new \Doctrine\DBAL\Logging\EchoSQLLogger,
102
        ];
103
104
        $this->assertInstanceOf('\Doctrine\ORM\EntityManager', EntityManagerBuilder::build($options));
105
    }
106
}
107