testDisableEmailUpdateConfirmation()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
cc 1
eloc 13
c 1
b 1
f 0
nc 1
nop 0
dl 0
loc 16
rs 9.8333
1
<?php
2
3
namespace Azine\EmailUpdateConfirmationBundle\Tests\DependencyInjection;
4
5
use Azine\EmailUpdateConfirmationBundle\DependencyInjection\AzineEmailUpdateConfirmationExtension;
6
use Symfony\Component\DependencyInjection\ContainerBuilder;
7
8
class AzineEmailUpdateConfirmationExtensionTest extends \PHPUnit\Framework\TestCase
9
{
10
    public function testDisableEmailUpdateConfirmation()
11
    {
12
        $configuration = new ContainerBuilder();
13
        $loader = new AzineEmailUpdateConfirmationExtension();
14
        $config = array();
15
        $config['enabled'] = false;
16
        $config['from_email'] = '[email protected]';
17
        $loader->load(array($config), $configuration);
18
19
        $this->assertFalse($configuration->hasDefinition('email_update_confirmation'));
20
        $this->assertFalse($configuration->hasDefinition('azine.email_update.mailer'));
21
        $this->assertFalse($configuration->hasDefinition('email_update_listener'));
22
        $this->assertFalse($configuration->hasDefinition('email_update_flash_subscriber'));
23
        $this->assertFalse($configuration->hasParameter('azine_email_update_confirmation.template'));
24
        $this->assertFalse($configuration->hasParameter('azine_email_update_confirmation.cypher_method'));
25
        $this->assertFalse($configuration->hasParameter('azine_email_update_confirmation.redirect_route'));
26
    }
27
28
    public function testEnableEmailUpdateConfirmation()
29
    {
30
        $configuration = new ContainerBuilder();
31
        $loader = new AzineEmailUpdateConfirmationExtension();
32
        $config = array();
33
        $config['enabled'] = true;
34
        $config['from_email'] = '[email protected]';
35
        $loader->load(array($config), $configuration);
36
37
        $this->assertTrue($configuration->hasDefinition('email_update_confirmation'));
38
        $this->assertTrue($configuration->hasDefinition('azine.email_update.mailer'));
39
        $this->assertTrue($configuration->hasDefinition('email_update_listener'));
40
        $this->assertTrue($configuration->hasDefinition('email_update_flash_subscriber'));
41
        $this->assertTrue($configuration->hasParameter('azine_email_update_confirmation.template'));
42
        $this->assertTrue($configuration->hasParameter('azine_email_update_confirmation.cypher_method'));
43
        $this->assertTrue($configuration->hasParameter('azine_email_update_confirmation.redirect_route'));
44
    }
45
46
    public function testEnableEmailUpdateConfirmationByDefault()
47
    {
48
        $configuration = new ContainerBuilder();
49
        $loader = new AzineEmailUpdateConfirmationExtension();
50
        $config = array();
51
        $config['from_email'] = '[email protected]';
52
        $loader->load(array($config), $configuration);
53
        $this->assertTrue($configuration->hasDefinition('email_update_confirmation'));
54
        $this->assertTrue($configuration->hasParameter('azine_email_update_confirmation.template'));
55
        $this->assertSame($config['from_email'], $configuration->getParameter('azine_email_update_confirmation.from_email'));
56
    }
57
58
    /**
59
     * @expectedException \Exception
60
     */
61
    public function testNotSetUpFromEmailParameter()
62
    {
63
        $configuration = new ContainerBuilder();
64
        $loader = new AzineEmailUpdateConfirmationExtension();
65
        $loader->load(array(), $configuration);
66
    }
67
68
    public function testFOSUserBundleFromEmailParameter()
69
    {
70
        $configuration = new ContainerBuilder();
71
        $fosFromEmail = '[email protected]';
72
        $fosFromName = 'From Email Name';
73
        $configuration->setParameter('fos_user.resetting.email.from_email', array($fosFromEmail => $fosFromName));
74
        $loader = new AzineEmailUpdateConfirmationExtension();
75
        $loader->load(array(), $configuration);
76
        $this->assertSame($fosFromEmail, $configuration->getParameter('azine_email_update_confirmation.from_email'));
77
    }
78
}
79