MailServiceLoggerCest   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A logFailedSendAttempt() 0 25 2
A logSuccessfulSendAttempt() 0 19 1
1
<?php
2
3
namespace Kodus\Mail\Test\Unit;
4
5
use Kodus\Mail\Address;
6
use Kodus\Mail\MailServiceLogger;
7
use Kodus\Mail\Message;
8
use Kodus\Mail\Passive\PassiveMailService;
9
use Kodus\Mail\Test\Mocks\MockLogger;
10
use RuntimeException;
11
use UnitTester;
12
13
class MailServiceLoggerCest
14
{
15
    public function logSuccessfulSendAttempt(UnitTester $I)
16
    {
17
        $logger = new MockLogger();
18
19
        $service = new MailServiceLogger(
20
            $logger,
21
            new PassiveMailService()
22
        );
23
24
        $service->send(new Message(
25
            new Address("[email protected]", "Mister Foo"),
26
            new Address("[email protected]"),
27
            "Greetings, Friend!",
28
            "How you been, bro?"
29
        ));
30
31
        $I->assertSame(
32
            ['message sent via Kodus\Mail\Passive\PassiveMailService to: Mister Foo <[email protected]> from: <[email protected]> with subject: Greetings, Friend!'],
33
            $logger->records
34
        );
35
    }
36
37
    public function logFailedSendAttempt(UnitTester $I)
38
    {
39
        $logger = new MockLogger();
40
41
        $service = new MailServiceLogger(
42
            $logger,
43
            new TotallyIncompetentMessageService()
44
        );
45
46
        $message = new Message(
47
            new Address("[email protected]", "Mister Foo"),
48
            new Address("[email protected]"),
49
            "Greetings, Friend!",
50
            "How you been, bro?"
51
        );
52
53
        try {
54
            $service->send($message);
55
        } catch (RuntimeException $e) {
56
            // expected
57
        }
58
59
        $I->assertSame(
60
            ['ERROR: message not sent [RuntimeException: OMG! everything is broken!] via Kodus\Mail\Test\Unit\TotallyIncompetentMessageService to: Mister Foo <[email protected]> from: <[email protected]> with subject: Greetings, Friend!'],
61
            $logger->records
62
        );
63
    }
64
}
65