Passed
Branch master (a96d1e)
by Nicolas
02:44
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 PHPUnit_Framework_MockObject_MockBuilder
21
     */
22
    protected $planParserMock;
23
24
    /**
25
     * @var PHPUnit_Framework_MockObject_MockBuilder
26
     */
27
    protected $urlTransformerMock;
28
29
    /**
30
     * @var PHPUnit_Framework_MockObject_MockBuilder
31
     */
32
    protected $memcachedCacheMock;
33
34
    /**
35
     * @var PHPUnit_Framework_MockObject_MockBuilder
36
     */
37
    protected $serializerMock;
38
39
    /**
40
     * {@inheritdoc}
41
     */
42
    public function setUp()
43
    {
44
        $planMock = $this->getMockBuilder(Plan::class)->disableOriginalConstructor()->getMock();
45
46
        $this->planParserMock = $this
47
            ->getMockBuilder(PlanParser::class)
48
            ->disableOriginalConstructor()
49
            ->getMock();
50
        $this->urlTransformerMock = $this
51
            ->getMockBuilder(UrlTransformer::class)
52
            ->disableOriginalConstructor()
53
            ->getMock();
54
55
        $this->memcachedCacheMock = $this
56
            ->getMockBuilder(MemcachedCache::class)
57
            ->disableOriginalConstructor()
58
            ->getMock();
59
        $this->memcachedCacheMock
60
            ->expects($this->any())
61
            ->method('fetch')
62
            ->willReturn(false)
63
        ;
64
        $this->serializerMock = $this
65
            ->getMockBuilder(Serializer::class)
66
            ->disableOriginalConstructor()
67
            ->getMock();
68
        $this->serializerMock
69
            ->expects($this->any())
70
            ->method('deserialize')
71
            ->willReturn($planMock)
72
        ;
73
    }
74
75
    /**
76
     * Test find all elements of plan
77
     */
78
    public function testFindByTypeReturnPlanObject()
79
    {
80
        $planManager = new PlanManager(
81
            $this->planParserMock,
82
            $this->urlTransformerMock,
83
            $this->serializerMock,
84
            $this->memcachedCacheMock
85
        );
86
87
        $plan = $planManager->findByType(8, 3, TypeInterface::TYPE_10K);
88
89
        $this->assertInstanceOf(Plan::class, $plan);
90
    }
91
92
    /**
93
     * Test if Configuration exception is throw
94
     *
95
     * @expectedException \Cp\Exception\ConfigurationException
96
     */
97
    public function testThrowConfigurationException()
98
    {
99
        $this
100
            ->planParserMock
101
            ->expects($this->once())
102
            ->method('parseToJson')
103
            ->willThrowException(new ConfigurationException())
104
        ;
105
106
        $planManager = new PlanManager(
107
            $this->planParserMock,
108
            $this->urlTransformerMock,
109
            $this->serializerMock,
110
            $this->memcachedCacheMock
111
        );
112
113
        $planManager->findByType(8, 3, TypeInterface::TYPE_10K);
114
    }
115
}
116