Completed
Push — scalar-types/registry ( 38a5a0 )
by Kamil
75:54 queued 51:59
created

SenderSpec::it_is_initializable()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
nc 1
cc 1
eloc 2
nop 0
1
<?php
2
3
/*
4
 * This file is part of the Sylius package.
5
 *
6
 * (c) Paweł Jędrzejewski
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
declare(strict_types=1);
13
14
namespace spec\Sylius\Component\Mailer\Sender;
15
16
use PhpSpec\ObjectBehavior;
17
use Sylius\Component\Mailer\Model\EmailInterface;
18
use Sylius\Component\Mailer\Provider\DefaultSettingsProviderInterface;
19
use Sylius\Component\Mailer\Provider\EmailProviderInterface;
20
use Sylius\Component\Mailer\Renderer\Adapter\AdapterInterface as RendererAdapterInterface;
21
use Sylius\Component\Mailer\Renderer\RenderedEmail;
22
use Sylius\Component\Mailer\Sender\Adapter\AdapterInterface as SenderAdapterInterface;
23
24
/**
25
 * @author Paweł Jędrzejewski <[email protected]>
26
 */
27
final class SenderSpec extends ObjectBehavior
28
{
29
    function let(
30
        RendererAdapterInterface $rendererAdapter,
31
        SenderAdapterInterface $senderAdapter,
32
        EmailProviderInterface $provider,
33
        DefaultSettingsProviderInterface $defaultSettingsProvider
34
    ): void {
35
        $this->beConstructedWith($rendererAdapter, $senderAdapter, $provider, $defaultSettingsProvider);
36
    }
37
38
    function it_sends_an_email_through_the_adapter(
39
        EmailInterface $email,
40
        EmailProviderInterface $provider,
41
        RenderedEmail $renderedEmail,
42
        RendererAdapterInterface $rendererAdapter,
43
        SenderAdapterInterface $senderAdapter
44
    ): void {
45
        $provider->getEmail('bar')->willReturn($email);
46
        $email->isEnabled()->willReturn(true);
47
        $email->getSenderAddress()->willReturn('[email protected]');
48
        $email->getSenderName()->willReturn('Sender');
49
50
        $data = ['foo' => 2];
51
52
        $rendererAdapter->render($email, ['foo' => 2])->willReturn($renderedEmail);
53
        $senderAdapter->send(['[email protected]'], '[email protected]', 'Sender', $renderedEmail, $email, $data, [])->shouldBeCalled();
54
55
        $this->send('bar', ['[email protected]'], $data, []);
56
    }
57
58
    function it_does_not_send_disabled_emails(
59
        EmailInterface $email,
60
        EmailProviderInterface $provider,
61
        RendererAdapterInterface $rendererAdapter,
62
        SenderAdapterInterface $senderAdapter
63
    ): void {
64
        $provider->getEmail('bar')->willReturn($email);
65
        $email->isEnabled()->willReturn(false);
66
67
        $rendererAdapter->render($email, ['foo' => 2])->shouldNotBeCalled();
68
        $senderAdapter->send(['[email protected]'], '[email protected]', 'Sylius Mailer', null, $email, [], [])->shouldNotBeCalled();
69
70
        $this->send('bar', ['[email protected]'], ['foo' => 2], []);
71
    }
72
}
73