Completed
Push — master ( e56856...67d12b )
by Antonio
04:26
created

MailMessageTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
c 1
b 0
f 0
lcom 1
cbo 4
dl 0
loc 42
rs 10
1
<?php
2
namespace Da\Mailer\Test\Model;
3
4
use Da\Mailer\Model\MailMessage;
5
use Da\Mailer\Test\Fixture\FixtureHelper;
6
use PHPUnit_Framework_TestCase;
7
use Swift_Message;
8
9
class MailMessageTest extends PHPUnit_Framework_TestCase
10
{
11
    public function testMailMessageMagicMethods()
12
    {
13
        $config = FixtureHelper::getMailMessageSmtpConfigurationArray();
14
        $mailMessage = FixtureHelper::getMailMessage();
15
16
        foreach ($config as $attribute => $value) {
17
            $this->assertEquals($config[$attribute], $mailMessage->$attribute);
18
            $this->assertTrue(isset($mailMessage->$attribute));
19
            unset($mailMessage->$attribute);
20
            $this->assertTrue(isset($mailMessage->$attribute) === false);
21
        }
22
    }
23
24
    public function testMailMessageJsonSerializeAndFromArrayMethods()
25
    {
26
        $config = FixtureHelper::getMailMessageSmtpConfigurationArray();
27
        $mailMessage = FixtureHelper::getMailMessage();
28
29
        $json = json_encode($mailMessage, JSON_NUMERIC_CHECK);
30
        $this->assertEquals(json_encode($config, JSON_NUMERIC_CHECK), $json);
31
        $decodedMailMessage = MailMessage::fromArray(json_decode($json, true));
32
33
        $this->assertEquals($mailMessage, $decodedMailMessage);
34
    }
35
36
    public function testAsSwiftMessageMethod()
37
    {
38
        $mailMessage = FixtureHelper::getMailMessage();
39
        $swift = $mailMessage->asSwiftMessage();
40
41
        $this->assertTrue($swift instanceof Swift_Message);
42
43
        $this->assertEquals([$mailMessage->to => null], $swift->getTo());
44
        $this->assertEquals([$mailMessage->from => null], $swift->getFrom());
45
        $this->assertEquals([$mailMessage->cc => null], $swift->getCc());
46
        $this->assertEquals([$mailMessage->bcc => null], $swift->getBcc());
47
        $this->assertEquals($mailMessage->subject, $swift->getSubject());
48
        $this->assertEquals($mailMessage->bodyHtml, $swift->getBody());
49
    }
50
}
51