Completed
Pull Request — 3.x (#239)
by
unknown
02:07
created

SwiftMailerConsumerTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 81
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 8 1
A testSendEmail() 0 53 1
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())->method('setCc')->with($this->equalTo(array('[email protected]', '[email protected]' => 'nameCc2')))->willReturnSelf();
84
        $mail->expects($this->once())->method('setBcc')->with($this->equalTo(array('[email protected]', '[email protected]' => 'nameBcc2')))->willReturnSelf();
85
        $mail->expects($this->exactly(2))
86
            ->method('addPart')
87
            ->withConsecutive(
88
                array($this->equalTo('message text'), $this->equalTo('text/plain')),
89
                array($this->equalTo('message html'), $this->equalTo('text/html'))
90
            )
91
            ->willReturnSelf();
92
93
        $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...
94
95
        $method = new \ReflectionMethod($this->consumer, 'sendEmail');
96
        $method->setAccessible(true);
97
98
        $method->invoke($this->consumer, $message);
99
    }
100
}
101