Completed
Pull Request — master (#15)
by John
02:41
created

GraphicPrimitiveBuilderText::testBuild()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 47
Code Lines 39

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 47
rs 9.0303
cc 1
eloc 39
nc 1
nop 0
1
<?php
2
3
namespace Graze\CiffRenderer\Test\Builder;
4
5
use \Mockery as m;
6
use Graze\CiffRenderer\Field\Builder\GraphicPrimitiveBuilder;
7
use Graze\CiffRenderer\Field\Parser\GraphicPrimitiveParser;
8
use Graze\CiffRenderer\Field\Renderer\GraphicPrimitive\AbstractGraphicPrimitiveRenderer;
9
use Graze\CiffRenderer\Field\Parser\ParserManager;
10
use Intervention\Image\ImageManager;
11
use \SimpleXMLElement;
12
13
class GraphicPrimitiveBuilderText extends \PHPUnit_Framework_TestCase
14
{
15
    public function testBuild()
16
    {
17
        $parserManager = m::mock(ParserManager::class);
18
        $imageManager = m::mock(ImageManager::class);
19
        $xmlField = new SimpleXMLElement('<a/>');
20
        $scale = 10;
21
        $tracerColour = '#ccc';
22
23
        $parser = m::mock(GraphicPrimitiveParser::class)
24
            ->shouldReceive('setXmlField')
25
            ->with($xmlField)
26
            ->shouldReceive('setParserManager')
27
            ->with($parserManager)
28
            ->getMock();
29
30
        $parserManager
31
            ->shouldReceive('addParser')
32
            ->with($parser);
33
34
        $renderer = m::mock(AbstractGraphicPrimitiveRenderer::class)
35
            ->shouldReceive('setParser')
36
            ->with($parser)
37
            ->shouldReceive('setImageManager')
38
            ->with($imageManager)
39
            ->shouldReceive('setScale')
40
            ->with($scale)
41
            ->shouldReceive('setTracerColour')
42
            ->with($tracerColour)
43
            ->getMock();
44
45
        $builder = m::mock(GraphicPrimitiveBuilder::class)
46
            ->shouldAllowMockingProtectedMethods()
47
            ->shouldReceive('instantiateParser')
48
            ->andReturn($parser)
49
            ->shouldReceive('instantiateRenderer')
50
            ->andReturn($renderer)
51
            ->getMock()
52
            ->makePartial();
53
54
        $builder->setParserManager($parserManager);
55
        $builder->setImageManager($imageManager);
56
        $builder->setXmlField($xmlField);
57
        $builder->setScale($scale);
58
        $builder->setTracerColour($tracerColour);
59
60
        $this->assertSame($renderer, $builder->build());
61
    }
62
}
63