Completed
Pull Request — master (#18)
by John
05:06 queued 03:09
created

testGetFieldRendererGraphicPrimitive()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 26
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 26
rs 8.8571
c 0
b 0
f 0
cc 1
eloc 19
nc 1
nop 0
1
<?php
2
3
namespace Graze\CiffRenderer\Test\Unit\Renderer\FieldRenderer;
4
5
use Mockery as m;
6
use Graze\CiffRenderer\Renderer\FieldRenderer\GraphicPrimitive\GraphicPrimitiveFactory;
7
use Graze\CiffRenderer\Parser\FieldParserRegistry;
8
use Graze\CiffRenderer\Renderer\FieldRenderer\FieldRendererFactory;
9
use Graze\CiffRenderer\Renderer\FieldRenderer\FieldRendererInterface;
10
use Graze\CiffRenderer\Parser\FieldParser\FieldParserInterface;
11
use Graze\CiffRenderer\Parser\FieldParser\FieldParserFixedText;
12
use Graze\CiffRenderer\Parser\FieldParser\FieldParserBarcode;
13
use Graze\CiffRenderer\Parser\FieldParser\FieldParserStaticGraphic;
14
use Graze\CiffRenderer\Parser\FieldParser\FieldParserGraphicPrimitive;
15
use Graze\CiffRenderer\Renderer\FieldRenderer\FieldRendererFixedText;
16
use Graze\CiffRenderer\Renderer\FieldRenderer\FieldRendererBarcode;
17
use Graze\CiffRenderer\Renderer\FieldRenderer\FieldRendererStaticGraphic;
18
use Graze\CiffRenderer\Renderer\FieldRenderer\GraphicPrimitive\GraphicPrimitiveInterface;
19
20
class FieldRendererFactoryTest extends \PHPUnit_Framework_TestCase
21
{
22
    /**
23
     * @dataProvider dataProviderGetFieldRenderer
24
     * @param FieldParserInterface $parser
25
     * @param string $rendererExpected
26
     */
27
    public function testGetFieldRenderer(FieldParserInterface $parser, $rendererExpected)
28
    {
29
        $graphicPrimitiveFactory = m::mock(GraphicPrimitiveFactory::class);
0 ignored issues
show
Comprehensibility Naming introduced by
The variable name $graphicPrimitiveFactory exceeds the maximum configured length of 20.

Very long variable names usually make code harder to read. It is therefore recommended not to make variable names too verbose.

Loading history...
30
        $fieldRendererFactory = new FieldRendererFactory($graphicPrimitiveFactory);
31
32
        $rendererActual = $fieldRendererFactory->getFieldRenderer($parser);
33
        $this->assertInstanceOf($rendererExpected, $rendererActual);
34
    }
35
36
    /**
37
     * @return array
38
     */
39
    public function dataProviderGetFieldRenderer()
40
    {
41
        return [
42
            [new FieldParserBarcode(), FieldRendererBarcode::class],
43
            [new FieldParserStaticGraphic(), FieldRendererStaticGraphic::class],
44
            [new FieldParserFixedText(), FieldRendererFixedText::class]
45
        ];
46
    }
47
48
    public function testGetFieldRendererGraphicPrimitive()
49
    {
50
        $rendererExpected = m::mock(FieldRendererInterface::class);
51
        $shape = 'i am shape';
52
        $graphicPrimitiveFactory = m::mock(GraphicPrimitiveFactory::class)
0 ignored issues
show
Comprehensibility Naming introduced by
The variable name $graphicPrimitiveFactory exceeds the maximum configured length of 20.

Very long variable names usually make code harder to read. It is therefore recommended not to make variable names too verbose.

Loading history...
53
            ->shouldReceive('getFieldRenderer')
54
            ->with($shape)
55
            ->andReturn($rendererExpected)
56
            ->once()
57
            ->getMock();
58
        $fieldRendererFactory = new FieldRendererFactory($graphicPrimitiveFactory);
59
60
        $fieldParserRegistry = m::mock(FieldParserRegistry::class)
61
            ->shouldReceive('addParser')
62
            ->getMock();
63
64
        // have to pass actual parser as matching is done on class name
65
        $xml = sprintf('<xml><Graphic><Primitive><Shape>%s</Shape></Primitive></Graphic></xml>', $shape);
66
        $simpleXmlElement = new \SimpleXMLElement($xml);
67
68
        $parser = new FieldParserGraphicPrimitive();
69
        $parser->parse($fieldParserRegistry, $simpleXmlElement, new \SimpleXmlElement('<xml/>'), 1);
70
71
        $rendererActual = $fieldRendererFactory->getFieldRenderer($parser);
72
        $this->assertEquals($rendererExpected, $rendererActual);
73
    }
74
}
75