Completed
Pull Request — master (#1119)
by Alessandro
06:26
created

testThatGetRepositoryCallsMainRepositoryManager()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 27
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 27
rs 8.8571
cc 1
eloc 18
nc 1
nop 0
1
<?php
2
3
namespace FOS\ElasticaBundle\Tests\Doctrine;
4
5
use FOS\ElasticaBundle\Doctrine\RepositoryManager;
6
use FOS\ElasticaBundle\Repository;
7
8
class CustomRepository
9
{
10
}
11
12
class Entity
13
{
14
}
15
16
/**
17
 * @author Richard Miller <[email protected]>
18
 */
19
class RepositoryManagerTest extends \PHPUnit_Framework_TestCase
20
{
21
    public function testThatGetRepositoryCallsMainRepositoryManager()
22
    {
23
        /** @var $finderMock \PHPUnit_Framework_MockObject_MockObject|\FOS\ElasticaBundle\Finder\TransformedFinder */
24
        $finderMock = $this->getMockBuilder('FOS\ElasticaBundle\Finder\TransformedFinder')
25
            ->disableOriginalConstructor()
26
            ->getMock();
27
28
        /** @var $registryMock \PHPUnit_Framework_MockObject_MockObject|\Doctrine\Common\Persistence\ManagerRegistry */
29
        $registryMock = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')
30
            ->disableOriginalConstructor()
31
            ->getMock();
32
33
        $mainManager = $this->getMockBuilder('FOS\ElasticaBundle\Manager\RepositoryManagerInterface')
34
            ->disableOriginalConstructor()
35
            ->getMock();
36
37
        $mainManager->method('getRepository')
38
            ->with($this->equalTo('index/type'))
39
            ->willReturn(new Repository($finderMock));
40
41
        $entityName = 'FOS\ElasticaBundle\Tests\Manager\Entity';
42
43
        $manager = new RepositoryManager($registryMock, $mainManager);
0 ignored issues
show
Deprecated Code introduced by
The class FOS\ElasticaBundle\Doctrine\RepositoryManager has been deprecated.

This class, trait or interface has been deprecated.

Loading history...
44
        $manager->addEntity($entityName, 'index/type');
45
        $repository = $manager->getRepository($entityName);
46
        $this->assertInstanceOf('FOS\ElasticaBundle\Repository', $repository);
47
    }
48
49
    public function testGetRepositoryShouldResolveEntityShortName()
50
    {
51
        /** @var $finderMock \PHPUnit_Framework_MockObject_MockObject|\FOS\ElasticaBundle\Finder\TransformedFinder */
52
        $finderMock = $this->getMockBuilder('FOS\ElasticaBundle\Finder\TransformedFinder')
53
            ->disableOriginalConstructor()
54
            ->getMock();
55
56
        /** @var $registryMock \PHPUnit_Framework_MockObject_MockObject|\Doctrine\Common\Persistence\ManagerRegistry */
57
        $registryMock = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')
58
            ->disableOriginalConstructor()
59
            ->getMock();
60
61
        $registryMock->method('getAliasNamespace')
62
            ->with($this->equalTo('FOSElasticaBundle'))
63
            ->willReturn('FOS\ElasticaBundle\Tests\Manager');
64
65
        $mainManager = $this->getMockBuilder('FOS\ElasticaBundle\Manager\RepositoryManagerInterface')
66
            ->disableOriginalConstructor()
67
            ->getMock();
68
69
        $mainManager->method('getRepository')
70
            ->with($this->equalTo('index/type'))
71
            ->willReturn(new Repository($finderMock));
72
73
        $entityName = 'FOS\ElasticaBundle\Tests\Manager\Entity';
74
75
        $manager = new RepositoryManager($registryMock, $mainManager);
0 ignored issues
show
Deprecated Code introduced by
The class FOS\ElasticaBundle\Doctrine\RepositoryManager has been deprecated.

This class, trait or interface has been deprecated.

Loading history...
76
        $manager->addEntity($entityName, 'index/type');
77
        $repository = $manager->getRepository('FOSElasticaBundle:Entity');
78
        $this->assertInstanceOf('FOS\ElasticaBundle\Repository', $repository);
79
    }
80
}
81