Completed
Push — master ( fe63b4...6cf296 )
by Tomasz
02:42
created

CachedRouteDetectorTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 1
dl 0
loc 54
ccs 44
cts 44
cp 1
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A testAddRouteClear() 0 12 1
A testAddRouteNoClearOnSame() 0 12 1
A testSetDefaultClear() 0 12 1
A testSetDefaultNoClearOnSame() 0 12 1
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 1
    public function testAddRouteClear()
20
    {
21 1
        $detector = new CachedRouteDetector();
22 1
        $reflectionObject = new ReflectionObject($detector);
23 1
        $cache = $reflectionObject->getProperty('cachedRoutes');
24 1
        $cache->setAccessible(true);
25 1
        $detector->addRoute(DummyInterface::class, 'test');
26 1
        $detector->detect(DummyChildClass::class);
27 1
        $this->assertEquals(array(DummyChildClass::class => 'test'), $cache->getValue($detector));
28 1
        $detector->addRoute(DummyInterface::class, 'test2');
29 1
        $this->assertEmpty($cache->getValue($detector));
30 1
    }
31
32 1
    public function testAddRouteNoClearOnSame()
33
    {
34 1
        $detector = new CachedRouteDetector();
35 1
        $reflectionObject = new ReflectionObject($detector);
36 1
        $cache = $reflectionObject->getProperty('cachedRoutes');
37 1
        $cache->setAccessible(true);
38 1
        $detector->addRoute(DummyInterface::class, 'test');
39 1
        $detector->detect(DummyChildClass::class);
40 1
        $this->assertEquals(array(DummyChildClass::class => 'test'), $cache->getValue($detector));
41 1
        $detector->addRoute(DummyInterface::class, 'test');
42 1
        $this->assertEquals(array(DummyChildClass::class => 'test'), $cache->getValue($detector));
43 1
    }
44
45 1
    public function testSetDefaultClear()
46
    {
47 1
        $detector = new CachedRouteDetector();
48 1
        $reflectionObject = new ReflectionObject($detector);
49 1
        $cache = $reflectionObject->getProperty('cachedRoutes');
50 1
        $cache->setAccessible(true);
51 1
        $detector->setDefault('test');
52 1
        $detector->detect(DummyChildClass::class);
53 1
        $this->assertEquals(array(DummyChildClass::class => 'test'), $cache->getValue($detector));
54 1
        $detector->setDefault('test2');
55 1
        $this->assertEmpty($cache->getValue($detector));
56 1
    }
57
58 1
    public function testSetDefaultNoClearOnSame()
59
    {
60 1
        $detector = new CachedRouteDetector();
61 1
        $reflectionObject = new ReflectionObject($detector);
62 1
        $cache = $reflectionObject->getProperty('cachedRoutes');
63 1
        $cache->setAccessible(true);
64 1
        $detector->setDefault('test');
65 1
        $detector->detect(DummyChildClass::class);
66 1
        $this->assertEquals(array(DummyChildClass::class => 'test'), $cache->getValue($detector));
67 1
        $detector->setDefault('test');
68 1
        $this->assertEquals(array(DummyChildClass::class => 'test'), $cache->getValue($detector));
69 1
    }
70
}
71