Passed
Push — master ( 2823db...e46f60 )
by Alexander
10:02
created

TestMailer   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Importance

Changes 5
Bugs 0 Features 0
Metric Value
eloc 11
c 5
b 0
f 0
dl 0
loc 25
rs 10
wmc 4
1
<?php
2
3
namespace Yiisoft\Mailer\Tests;
4
5
use InvalidArgumentException;
6
use Yiisoft\Mailer\FileMailer;
7
use Yiisoft\Mailer\MessageInterface;
8
9
class TestMailer extends FileMailer
10
{
11
    public $sentMessages = [];
12
    public $lastFilename;
13
14
    protected function sendMessage(MessageInterface $message): void
15
    {
16
        if (empty($message->getSubject())) {
17
            throw new InvalidArgumentException("Message's subject is required");
18
        }
19
20
        parent::sendMessage($message);
21
        $this->sentMessages[] = $message;
22
    }
23
24
    public function beforeSend(MessageInterface $message): bool
25
    {
26
        return parent::beforeSend($message);
27
    }
28
29
    protected function generateMessageFilename(): string
30
    {
31
        $filename = parent::generateMessageFilename();
32
        $this->lastFilename = $filename;
33
        return $filename;
34
    }
35
}
36