Completed
Push — master ( 047c26...0e0f65 )
by Robbie
01:48
created

ConfigManifestProxyTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 5
c 1
b 0
f 0
lcom 0
cbo 5
dl 0
loc 41
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 17 3
A testProxyIsPushedToLoader() 0 5 1
A testGetCallsAreCaptured() 0 14 1
1
<?php
2
3
namespace LeKoala\DebugBar\Test\Proxy;
4
5
use LeKoala\DebugBar\DebugBar;
6
use LeKoala\DebugBar\Proxy\ConfigManifestProxy;
7
use LeKoala\DebugBar\Proxy\TemplateParserProxy;
8
use SilverStripe\Dev\SapphireTest;
9
use SilverStripe\Core\Config\Config;
10
use SilverStripe\Core\Injector\Injector;
11
use SilverStripe\Core\Kernel;
12
13
class ConfigManifestProxyTest extends SapphireTest
14
{
15
    protected function setUp()
16
    {
17
        DebugBar::initDebugBar();
18
19
        parent::setUp();
20
21
        // Clear out any extra config manifests
22
        /** @var SilverStripe\Core\Config\ConfigLoader $configLoader */
23
        $configLoader = Injector::inst()->get(Kernel::class)->getConfigLoader();
24
25
        while ($configLoader->countManifests() > 1) {
26
            if ($configLoader->getManifest() instanceof ConfigManifestProxy) {
27
                continue;
28
            }
29
            $configLoader->popManifest();
30
        }
31
    }
32
33
    public function testProxyIsPushedToLoader()
34
    {
35
        $configLoader = Injector::inst()->get(Kernel::class)->getConfigLoader();
36
        $this->assertInstanceOf(ConfigManifestProxy::class, $configLoader->getManifest());
37
    }
38
39
    public function testGetCallsAreCaptured()
40
    {
41
        Config::inst()->get(TemplateParserProxy::class, 'cached');
42
        $result = Injector::inst()->get(Kernel::class)->getConfigLoader()->getManifest()->getConfigCalls();
43
        $this->assertArrayHasKey(TemplateParserProxy::class, $result);
44
        $this->assertArrayHasKey('cached', $result[TemplateParserProxy::class]);
45
        $this->assertEquals(1, $result[TemplateParserProxy::class]['cached']['calls']);
46
47
        Config::inst()->get(TemplateParserProxy::class, 'cached');
48
        Config::inst()->get(TemplateParserProxy::class, 'cached');
49
        Config::inst()->get(TemplateParserProxy::class, 'cached');
50
        $result = Injector::inst()->get(Kernel::class)->getConfigLoader()->getManifest()->getConfigCalls();
51
        $this->assertEquals(4, $result[TemplateParserProxy::class]['cached']['calls']);
52
    }
53
}
54