Passed
Push — main ( 9c59f2...5fac80 )
by Peter
02:52
created

TransportBootstrapperTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 30
c 1
b 0
f 0
dl 0
loc 60
rs 10
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testRegisterBindingsSmtp() 0 12 1
A testRegisterBindingsSmtpSetsUserNameAndPassword() 0 17 1
A tearDown() 0 8 1
A testRegisterBindingsTransport() 0 7 1
A setUp() 0 3 1
1
<?php
2
3
namespace AbterPhp\Framework\Bootstrappers\Email;
4
5
use AbterPhp\Framework\Constant\Env;
6
use AbterPhp\Framework\Environments\Environment;
7
use AbterPhp\Framework\Exception\Config;
8
use Opulence\Ioc\Container;
9
use PHPUnit\Framework\TestCase;
10
use Swift_SmtpTransport;
11
use Swift_Transport;
12
13
class TransportBootstrapperTest extends TestCase
14
{
15
    /** @var TransportBootstrapper */
16
    protected TransportBootstrapper $sut;
17
18
    public function setUp(): void
19
    {
20
        $this->sut = new TransportBootstrapper();
21
    }
22
23
    public function tearDown(): void
24
    {
25
        Environment::unsetVar(Env::EMAIL_SMTP_HOST);
26
        Environment::unsetVar(Env::EMAIL_SMTP_PORT);
27
        Environment::unsetVar(Env::EMAIL_SMTP_ENCRYPTION);
28
        Environment::unsetVar(Env::EMAIL_SMTP_USERNAME);
29
        Environment::unsetVar(Env::EMAIL_SMTP_PASSWORD);
30
        Environment::unsetVar(Env::EMAIL_SENDMAIL_COMMAND);
31
    }
32
33
    public function testRegisterBindingsSmtp()
34
    {
35
        Environment::setVar(Env::EMAIL_SMTP_HOST, 'foo');
36
        Environment::setVar(Env::EMAIL_SMTP_PORT, 'bar');
37
        Environment::setVar(Env::EMAIL_SMTP_ENCRYPTION, 'baz');
38
39
        $container = new Container();
40
41
        $this->sut->registerBindings($container);
42
43
        $actual = $container->resolve(Swift_Transport::class);
44
        $this->assertInstanceOf(Swift_Transport::class, $actual);
45
    }
46
47
    public function testRegisterBindingsSmtpSetsUserNameAndPassword()
48
    {
49
        Environment::setVar(Env::EMAIL_SMTP_HOST, 'foo');
50
        Environment::setVar(Env::EMAIL_SMTP_PORT, 'bar');
51
        Environment::setVar(Env::EMAIL_SMTP_ENCRYPTION, 'baz');
52
        Environment::setVar(Env::EMAIL_SMTP_USERNAME, 'quix');
53
        Environment::setVar(Env::EMAIL_SMTP_PASSWORD, 'sterp');
54
55
        $container = new Container();
56
57
        $this->sut->registerBindings($container);
58
59
        /** @var Swift_SmtpTransport $actual */
60
        $actual = $container->resolve(Swift_Transport::class);
61
        $this->assertInstanceOf(Swift_Transport::class, $actual);
62
        $this->assertSame('quix', $actual->getUsername());
63
        $this->assertSame('sterp', $actual->getPassword());
64
    }
65
66
    public function testRegisterBindingsTransport()
67
    {
68
        $this->expectException(Config::class);
69
70
        $container = new Container();
71
72
        $this->sut->registerBindings($container);
73
    }
74
}
75