Completed
Push — master ( 5cbb35...7c6931 )
by Tomasz
02:28
created

CachedRouteDetectorTest::testSetDefaultNoClearOnSame()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 12
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 10
nc 1
nop 0
1
<?php
2
3
namespace Gendoria\CommandQueue\Tests\RouteDetection;
4
5
use Gendoria\CommandQueue\RouteDetection\Detector\CachedRouteDetector;
6
use Gendoria\CommandQueue\Tests\RouteDetection\Fixtures\DummyChildClass;
7
use Gendoria\CommandQueue\Tests\RouteDetection\Fixtures\DummyInterface;
8
use PHPUnit_Framework_TestCase;
9
use ReflectionObject;
10
11
/**
12
 * Description of RouteDetectorTest.
13
 *
14
 * @author Tomasz Struczyński <[email protected]>
15
 * @group RouteDetection
16
 */
17
class CachedRouteDetectorTest extends PHPUnit_Framework_TestCase
18
{
19
    public function testAddRouteClear()
20
    {
21
        $detector = new CachedRouteDetector();
22
        $reflectionObject = new ReflectionObject($detector);
23
        $cache = $reflectionObject->getProperty('cachedRoutes');
24
        $cache->setAccessible(true);
25
        $detector->addRoute(DummyInterface::class, 'test');
26
        $detector->detect(DummyChildClass::class);
27
        $this->assertEquals(array(DummyChildClass::class => 'test'), $cache->getValue($detector));
28
        $detector->addRoute(DummyInterface::class, 'test2');
29
        $this->assertEmpty($cache->getValue($detector));
30
    }
31
32
    public function testAddRouteNoClearOnSame()
33
    {
34
        $detector = new CachedRouteDetector();
35
        $reflectionObject = new ReflectionObject($detector);
36
        $cache = $reflectionObject->getProperty('cachedRoutes');
37
        $cache->setAccessible(true);
38
        $detector->addRoute(DummyInterface::class, 'test');
39
        $detector->detect(DummyChildClass::class);
40
        $this->assertEquals(array(DummyChildClass::class => 'test'), $cache->getValue($detector));
41
        $detector->addRoute(DummyInterface::class, 'test');
42
        $this->assertEquals(array(DummyChildClass::class => 'test'), $cache->getValue($detector));
43
    }
44
45
    public function testSetDefaultClear()
46
    {
47
        $detector = new CachedRouteDetector();
48
        $reflectionObject = new ReflectionObject($detector);
49
        $cache = $reflectionObject->getProperty('cachedRoutes');
50
        $cache->setAccessible(true);
51
        $detector->setDefault('test');
52
        $detector->detect(DummyChildClass::class);
53
        $this->assertEquals(array(DummyChildClass::class => 'test'), $cache->getValue($detector));
54
        $detector->setDefault('test2');
55
        $this->assertEmpty($cache->getValue($detector));
56
    }
57
58
    public function testSetDefaultNoClearOnSame()
59
    {
60
        $detector = new CachedRouteDetector();
61
        $reflectionObject = new ReflectionObject($detector);
62
        $cache = $reflectionObject->getProperty('cachedRoutes');
63
        $cache->setAccessible(true);
64
        $detector->setDefault('test');
65
        $detector->detect(DummyChildClass::class);
66
        $this->assertEquals(array(DummyChildClass::class => 'test'), $cache->getValue($detector));
67
        $detector->setDefault('test');
68
        $this->assertEquals(array(DummyChildClass::class => 'test'), $cache->getValue($detector));
69
    }
70
}
71