XConf::setPart()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 0
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 2
rs 10
1
<?php
2
3
namespace BasicTests;
4
5
6
use CommonTestClass;
7
use kalanis\kw_confs\ConfException;
8
use kalanis\kw_confs\Config;
9
use kalanis\kw_confs\Interfaces\IConf;
10
use kalanis\kw_confs\Interfaces\ILoader;
11
12
13
class ConfigTest extends CommonTestClass
14
{
15
    /**
16
     * @throws ConfException
17
     */
18
    public function testBasic(): void
19
    {
20
        Config::init(new XLoader());
21
        Config::load('baz');
22
23
        $this->assertEquals('pqr', Config::get('baz','def'));
24
        $this->assertEquals('lkj', Config::get('baz','ewq', 'lkj'));
25
        $this->assertEquals('vwx%s', Config::get('baz','jkl', '123'));
26
        $this->assertEquals('123', Config::get('baz','asdf%s', '123'));
27
28
        $this->assertInstanceOf('\kalanis\kw_confs\Interfaces\ILoader', Config::getLoader());
29
30
        $this->assertEquals(null, Config::get('wtf','non'));
31
        $this->assertEquals(null, Config::get('baz','uup'));
32
        Config::set('wtf', 'non', '351');
33
        Config::set('baz', 'uup', '684');
34
        $this->assertEquals(null, Config::get('wtf','non'));
35
        $this->assertEquals('684', Config::get('baz','uup'));
36
    }
37
38
    public function testClass(): void
39
    {
40
        Config::init(new XLoader());
41
        Config::loadClass(new XConf());
42
43
        $this->assertEquals('76pqr', Config::get('testing','def23'));
44
        $this->assertEquals('lkj', Config::get('testing','ewq', 'lkj'));
45
        $this->assertEquals('32vwx%s', Config::get('testing','jkl67', '123'));
46
        $this->assertEquals('123', Config::get('testing','asdf%s', '123'));
47
    }
48
}
49
50
51
class XLoader implements ILoader
52
{
53
    public function load(string $module, string $conf = ''): array
54
    {
55
        return [
56
            'abc' => 'mno',
57
            'def' => 'pqr',
58
            'ghi' => 'stu',
59
            'jkl' => 'vwx%s',
60
        ];
61
    }
62
}
63
64
65
class XConf implements IConf
66
{
67
    public function setPart(string $part): void
68
    {
69
        // nothing
70
    }
71
72
    public function getConfName(): string
73
    {
74
        return 'testing';
75
    }
76
77
    public function getSettings(): array
78
    {
79
        return [
80
            'abc01' => '98mno',
81
            'def23' => '76pqr',
82
            'ghi45' => '54stu',
83
            'jkl67' => '32vwx%s',
84
        ];
85
    }
86
}
87