Passed
Branch tests (8e1d8e)
by Nicolas
02:56
created

PlanManagerTest::testThrowConfigurationException()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 18
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 18
rs 9.4285
cc 1
eloc 12
nc 1
nop 0
1
<?php
2
3
namespace Tests\Cp\Manager;
4
5
use Cp\DomainObject\Plan;
6
use Cp\DomainObject\TypeInterface;
7
use Cp\Exception\ConfigurationException;
8
use Cp\Manager\PlanManager;
9
use Cp\Parser\PlanParser;
10
use Cp\Transformer\UrlTransformer;
11
use Doctrine\Common\Cache\MemcachedCache;
12
use JMS\Serializer\Serializer;
13
14
/**
15
 * Class PlanManagerTest
16
 */
17
class PlanManagerTest extends \PHPUnit_Framework_TestCase
18
{
19
    /**
20
     * @var PlanManager
21
     */
22
    protected $planManager;
23
24
    /**
25
     * @var PHPUnit_Framework_MockObject_MockBuilder
26
     */
27
    protected $planParserMock;
28
29
    /**
30
     * @var PHPUnit_Framework_MockObject_MockBuilder
31
     */
32
    protected $urlTransformerMock;
33
34
    /**
35
     * @var PHPUnit_Framework_MockObject_MockBuilder
36
     */
37
    protected $memcachedCacheMock;
38
39
    /**
40
     * @var PHPUnit_Framework_MockObject_MockBuilder
41
     */
42
    protected $serializerMock;
43
44
    /**
45
     * {@inheritdoc}
46
     */
47
    public function setUp()
48
    {
49
        $planMock = $this->getMockBuilder(Plan::class)->disableOriginalConstructor()->getMock();
50
51
        $this->planParserMock = $this
52
            ->getMockBuilder(PlanParser::class)
53
            ->disableOriginalConstructor()
54
            ->getMock();
55
        $this->urlTransformerMock = $this
56
            ->getMockBuilder(UrlTransformer::class)
57
            ->disableOriginalConstructor()
58
            ->getMock();
59
60
        $this->memcachedCacheMock = $this
61
            ->getMockBuilder(MemcachedCache::class)
62
            ->disableOriginalConstructor()
63
            ->getMock();
64
        $this->memcachedCacheMock
65
            ->expects($this->any())
66
            ->method('fetch')
67
            ->willReturn(false)
68
        ;
69
        $this->serializerMock = $this
70
            ->getMockBuilder(Serializer::class)
71
            ->disableOriginalConstructor()
72
            ->getMock();
73
        $this->serializerMock
74
            ->expects($this->any())
75
            ->method('deserialize')
76
            ->willReturn($planMock)
77
        ;
78
    }
79
80
    /**
81
     * Test find all elements of plan
82
     */
83
    public function testFindByTypeReturnPlanObject()
84
    {
85
        $planManager = new PlanManager(
86
            $this->planParserMock,
87
            $this->urlTransformerMock,
88
            $this->serializerMock,
89
            $this->memcachedCacheMock
90
        );
91
92
        $plan = $planManager->findByType(8, 3, TypeInterface::TYPE_10K);
93
94
        $this->assertInstanceOf(Plan::class, $plan);
95
    }
96
97
    /**
98
     * Test if Configuration exception is throw
99
     *
100
     * @expectedException \Cp\Exception\ConfigurationException
101
     */
102
    public function testThrowConfigurationException()
103
    {
104
        $this
105
            ->planParserMock
106
            ->expects($this->once())
107
            ->method('parseToJson')
108
            ->willThrowException(new ConfigurationException())
109
        ;
110
111
        $planManager = new PlanManager(
112
            $this->planParserMock,
113
            $this->urlTransformerMock,
114
            $this->serializerMock,
115
            $this->memcachedCacheMock
116
        );
117
118
        $planManager->findByType(8, 3, TypeInterface::TYPE_10K);
119
    }
120
}
121