InjectStandardHeadersTransport::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 11
ccs 6
cts 6
cp 1
rs 9.9
c 0
b 0
f 0
cc 1
nc 1
nop 2
crap 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Genkgo\Mail\Transport;
5
6
use Genkgo\Mail\Header\Date;
7
use Genkgo\Mail\MessageInterface;
8
use Genkgo\Mail\TransportInterface;
9
10
final class InjectStandardHeadersTransport implements TransportInterface
11
{
12
    /**
13
     * @var TransportInterface
14
     */
15
    private $decoratedTransport;
16
17
    /**
18
     * @param TransportInterface $transport
19
     * @param string $domainName
20
     */
21 1
    public function __construct(TransportInterface $transport, string $domainName)
22
    {
23 1
        $this->decoratedTransport = new InjectMessageIdHeaderTransport(
24 1
            new InjectDateHeaderTransport(
25 1
                new InjectSenderHeaderTransport(
26 1
                    $transport
27
                )
28
            ),
29
            $domainName
30
        );
31 1
    }
32
33
    /**
34
     * @param MessageInterface $message
35
     * @return void
36
     */
37 1
    public function send(MessageInterface $message): void
38
    {
39 1
        $this->decoratedTransport->send(
40 1
            $message->withHeader(
41 1
                new Date(
42 1
                    new \DateTimeImmutable()
43
                )
44
            )
45
        );
46 1
    }
47
}
48