AzineRecipientProviderTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Importance

Changes 3
Bugs 1 Features 1
Metric Value
eloc 28
c 3
b 1
f 1
dl 0
loc 46
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testGetRecipient() 0 20 1
A testGetNewsletterRecipientIDs() 0 22 1
1
<?php
2
3
namespace Azine\EmailBundle\Tests\Services;
4
5
use Azine\EmailBundle\Services\AzineRecipientProvider;
6
use Azine\EmailBundle\Tests\AzineQueryMock;
7
use Doctrine\DBAL\LockMode;
8
9
class AzineRecipientProviderTest extends \PHPUnit\Framework\TestCase
10
{
11
    public function testGetRecipient()
12
    {
13
        $id = 11;
14
15
        $recipientMock = $this->getMockBuilder("Azine\EmailBundle\Entity\RecipientInterface")->disableOriginalConstructor()->getMock();
16
        $recipientMock->expects($this->once())->method('getId')->will($this->returnValue($id));
17
18
        $repositoryMock = $this->getMockBuilder("Doctrine\ORM\EntityRepository")->disableOriginalConstructor()->getMock();
19
        $repositoryMock->expects($this->once())->method('find')->with($id, LockMode::NONE, null)->will($this->returnValue($recipientMock));
20
21
        $entityManagerMock = $this->getMockBuilder("Doctrine\ORM\EntityManager")->disableOriginalConstructor()->getMock();
22
        $entityManagerMock->expects($this->once())->method('getRepository')->will($this->returnValue($repositoryMock));
23
24
        $managerRegistryMock = $this->getMockBuilder("Doctrine\Common\Persistence\ManagerRegistry")->disableOriginalConstructor()->getMock();
25
        $managerRegistryMock->expects($this->any())->method('getManager')->will($this->returnValue($entityManagerMock));
26
27
        $recipientProvider = new AzineRecipientProvider($managerRegistryMock, 'a-user-class', 'newsletterField');
28
29
        $recipient = $recipientProvider->getRecipient($id);
30
        $this->assertSame($id, $recipient->getId());
31
    }
32
33
    public function testGetNewsletterRecipientIDs()
34
    {
35
        $queryResult = array(array('id' => 11), array('id' => 12), array('id' => 13), array('id' => 14));
36
        $recipientsArray = array(11, 12, 13, 14);
37
38
        $queryBuilderMock = $this->getMockBuilder("Doctrine\ORM\QueryBuilder")->disableOriginalConstructor()->getMock();
39
        $queryBuilderMock->expects($this->once())->method('select')->will($this->returnSelf());
40
        $queryBuilderMock->expects($this->once())->method('from')->will($this->returnSelf());
41
        $queryBuilderMock->expects($this->once())->method('where')->will($this->returnSelf());
42
        $queryBuilderMock->expects($this->once())->method('andWhere')->will($this->returnSelf());
43
44
        $queryBuilderMock->expects($this->once())->method('getQuery')->will($this->returnValue(new AzineQueryMock($queryResult)));
45
46
        $entityManagerMock = $this->getMockBuilder("Doctrine\ORM\EntityManager")->disableOriginalConstructor()->getMock();
47
        $entityManagerMock->expects($this->once())->method('createQueryBuilder')->will($this->returnValue($queryBuilderMock));
48
49
        $managerRegistryMock = $this->getMockBuilder("Doctrine\Common\Persistence\ManagerRegistry")->disableOriginalConstructor()->getMock();
50
        $managerRegistryMock->expects($this->any())->method('getManager')->will($this->returnValue($entityManagerMock));
51
52
        $recipientProvider = new AzineRecipientProvider($managerRegistryMock, 'a-user-class', 'newsletterField');
53
        $recipients = $recipientProvider->getNewsletterRecipientIDs();
54
        $this->assertSame($recipientsArray, $recipients);
55
    }
56
}
57