Completed
Push — master ( 442bc4...02c8d5 )
by Robbie
11s
created

ConfigManifestProxyTest::testGetCallsAreCaptured()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 11
nc 1
nop 0
dl 0
loc 15
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace LeKoala\DebugBar\Test\Proxy;
4
5
use SilverStripe\Core\Config\ConfigLoader;
6
use SilverStripe\Core\Kernel;
7
use LeKoala\DebugBar\DebugBar;
8
use SilverStripe\Dev\SapphireTest;
9
use SilverStripe\Core\Config\Config;
10
use SilverStripe\Core\Injector\Injector;
11
use LeKoala\DebugBar\Proxy\ConfigManifestProxy;
12
use LeKoala\DebugBar\Proxy\SSViewerProxy;
13
14
class ConfigManifestProxyTest extends SapphireTest
15
{
16
    protected function setUp()
17
    {
18
        parent::setUp();
19
20
        DebugBar::initDebugBar();
21
22
        /** @var ConfigLoader $configLoader */
23
        $configLoader = Injector::inst()->get(Kernel::class)->getConfigLoader();
24
25
        // Check top level manifest is our proxy
26
        if (!($configLoader->getManifest() instanceof ConfigManifestProxy)) {
27
            $this->markTestSkipped("ConfigManifestProxy is not initialized");
28
        }
29
    }
30
31
    public function testGetCallsAreCaptured()
32
    {
33
        $manifest = Injector::inst()->get(Kernel::class)->getConfigLoader()->getManifest();
34
35
        Config::inst()->get(SSViewerProxy::class, 'cached');
36
        $result = $manifest->getConfigCalls();
37
        $this->assertArrayHasKey(SSViewerProxy::class, $result);
38
        $this->assertArrayHasKey('cached', $result[SSViewerProxy::class]);
39
        $this->assertEquals(1, $result[SSViewerProxy::class]['cached']['calls']);
40
41
        Config::inst()->get(SSViewerProxy::class, 'cached');
42
        Config::inst()->get(SSViewerProxy::class, 'cached');
43
        Config::inst()->get(SSViewerProxy::class, 'cached');
44
        $result = $manifest->getConfigCalls();
45
        $this->assertEquals(4, $result[SSViewerProxy::class]['cached']['calls']);
46
    }
47
}
48