Completed
Push — master ( 3e1004...7bc225 )
by
unknown
02:16
created

SwiftMailerConsumerTest::setUp()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 8
rs 9.4285
cc 1
eloc 5
nc 1
nop 0
1
<?php
2
3
/*
4
 * This file is part of the Sonata Project package.
5
 *
6
 * (c) Thomas Rabaix <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Sonata\NotificationBundle\Tests\Consumer;
13
14
use Sonata\NotificationBundle\Consumer\SwiftMailerConsumer;
15
use Sonata\NotificationBundle\Model\Message;
16
17
/**
18
 * Tests the SwiftMailerConsumer.
19
 */
20
class SwiftMailerConsumerTest extends \PHPUnit_Framework_TestCase
21
{
22
    /**
23
     * @var SwiftMailerConsumer
24
     */
25
    private $consumer;
26
27
    /**
28
     * @var \Swift_Mailer
29
     */
30
    private $mailer;
31
32
    /**
33
     * Initializes some dependencies used by tests.
34
     */
35
    protected function setUp()
36
    {
37
        $this->mailer = $this->getMockBuilder('Swift_Mailer')
38
            ->disableOriginalConstructor()
39
            ->getMock();
40
41
        $this->consumer = new SwiftMailerConsumer($this->mailer);
42
    }
43
44
    /**
45
     * Tests the sendEmail method.
46
     */
47
    public function testSendEmail()
48
    {
49
        $message = new Message();
50
        $message->setBody(array(
51
            'subject' => 'subject',
52
            'from' => array(
53
                'email' => '[email protected]',
54
                'name' => 'nameFrom',
55
            ),
56
            'to' => array(
57
                '[email protected]',
58
                '[email protected]' => 'nameTo2',
59
            ),
60
            'replyTo' => array(
61
                '[email protected]',
62
                '[email protected]' => 'nameReplyTo2',
63
            ),
64
            'cc' => array(
65
                '[email protected]',
66
                '[email protected]' => 'nameCc2',
67
            ),
68
            'bcc' => array(
69
                '[email protected]',
70
                '[email protected]' => 'nameBcc2',
71
            ),
72
            'message' => array(
73
                'text' => 'message text',
74
                'html' => 'message html',
75
            ),
76
        ));
77
78
        $mail = $this->getMockBuilder('Swift_Message')->disableOriginalConstructor()->getMock();
79
        $mail->expects($this->once())->method('setSubject')->with($this->equalTo('subject'))->willReturnSelf();
80
        $mail->expects($this->once())->method('setFrom')->with($this->equalTo(array('[email protected]' => 'nameFrom')))->willReturnSelf();
81
        $mail->expects($this->once())->method('setTo')->with($this->equalTo(array('[email protected]', '[email protected]' => 'nameTo2')))->willReturnSelf();
82
        $mail->expects($this->once())->method('setReplyTo')->with($this->equalTo(array('[email protected]', '[email protected]' => 'nameReplyTo2')))->willReturnSelf();
83
        $mail->expects($this->once())
84
            ->method('setCc')
85
            ->with($this->equalTo(array('[email protected]', '[email protected]' => 'nameCc2')))
86
            ->willReturnSelf();
87
        $mail->expects($this->once())
88
            ->method('setBcc')
89
            ->with($this->equalTo(array('[email protected]', '[email protected]' => 'nameBcc2')))
90
            ->willReturnSelf();
91
        $mail->expects($this->exactly(2))
92
            ->method('addPart')
93
            ->withConsecutive(
94
                array($this->equalTo('message text'), $this->equalTo('text/plain')),
95
                array($this->equalTo('message html'), $this->equalTo('text/html'))
96
            )
97
            ->willReturnSelf();
98
99
        $this->mailer->expects($this->once())->method('createMessage')->will($this->returnValue($mail));
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<Swift_Mailer>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
100
101
        $method = new \ReflectionMethod($this->consumer, 'sendEmail');
102
        $method->setAccessible(true);
103
104
        $method->invoke($this->consumer, $message);
105
    }
106
}
107