Completed
Branch master (7dba2f)
by Alejandro
06:12
created

ifOldStandardServiceIsFoundItIsReturned()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 16
c 0
b 0
f 0
rs 9.4285
cc 1
eloc 11
nc 1
nop 0
1
<?php
2
declare(strict_types=1);
3
4
namespace AcMailerTest\View;
5
6
use AcMailer\View\MailViewRendererFactory;
7
use AcMailer\View\SimpleZendViewRenderer;
8
use Interop\Container\ContainerInterface;
9
use PHPUnit\Framework\TestCase;
10
use Zend\Expressive\Template\TemplateRendererInterface;
11
use Zend\View\Renderer\PhpRenderer;
12
13
class MailViewRendererFactoryTest extends TestCase
14
{
15
    /**
16
     * @var MailViewRendererFactory
17
     */
18
    private $factory;
19
20
    public function setUp()
21
    {
22
        $this->factory = new MailViewRendererFactory();
23
    }
24
25
    /**
26
     * @test
27
     */
28
    public function ifStandardServiceIsFoundItIsReturned()
29
    {
30
        $theRenderer = $this->prophesize(TemplateRendererInterface::class)->reveal();
31
32
        $container = $this->prophesize(ContainerInterface::class);
33
        $hasViewRenderer = $container->has(TemplateRendererInterface::class)->willReturn(true);
34
        $getViewRenderer = $container->get(TemplateRendererInterface::class)->willReturn($theRenderer);
35
36
        $result = $this->factory->__invoke($container->reveal());
37
38
        $this->assertSame($theRenderer, $result);
39
        $hasViewRenderer->shouldHaveBeenCalledTimes(1);
40
        $getViewRenderer->shouldHaveBeenCalledTimes(1);
41
    }
42
43
    /**
44
     * @test
45
     */
46
    public function ifOldStandardServiceIsFoundItIsReturned()
47
    {
48
        $theRenderer = new PhpRenderer();
49
50
        $container = $this->prophesize(ContainerInterface::class);
51
        $hasViewRenderer = $container->has(TemplateRendererInterface::class)->willReturn(false);
52
        $hasOldViewRenderer = $container->has('mailviewrenderer')->willReturn(true);
53
        $getViewRenderer = $container->get('mailviewrenderer')->willReturn($theRenderer);
54
55
        $result = $this->factory->__invoke($container->reveal());
56
57
        $this->assertInstanceOf(SimpleZendViewRenderer::class, $result);
58
        $hasViewRenderer->shouldHaveBeenCalledTimes(1);
59
        $hasOldViewRenderer->shouldHaveBeenCalledTimes(1);
60
        $getViewRenderer->shouldHaveBeenCalledTimes(1);
61
    }
62
63
    /**
64
     * @test
65
     */
66
    public function ifStandardServicesAreNotFoundOneIsCreatedOnTheFly()
67
    {
68
        $container = $this->prophesize(ContainerInterface::class);
69
70
        $hasViewRenderer = $container->has(TemplateRendererInterface::class)->willReturn(false);
71
        $hasOldViewRenderer = $container->has('mailviewrenderer')->willReturn(false);
72
        $getConfig = $container->get('config')->willReturn([
73
            'view_manager' => [
74
                'template_map' => [],
75
                'template_path_stack' => [],
76
            ],
77
            'view_helpers' => [],
78
        ]);
79
80
        $result = $this->factory->__invoke($container->reveal());
81
82
        $this->assertInstanceOf(SimpleZendViewRenderer::class, $result);
83
        $hasViewRenderer->shouldHaveBeenCalledTimes(1);
84
        $hasOldViewRenderer->shouldHaveBeenCalledTimes(1);
85
        $getConfig->shouldHaveBeenCalledTimes(2);
86
    }
87
}
88