Passed
Push — master ( d86a4e...217e0a )
by Aimeos
02:12
created

MemoryTest   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 77
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 8
eloc 31
c 1
b 0
f 0
dl 0
loc 77
rs 10

8 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 4 1
A testGetDefault() 0 3 1
A testGetOverwrite() 0 11 1
A testGetLocal() 0 7 1
A testGetSet() 0 4 1
A tearDown() 0 3 1
A testSet() 0 7 1
A testApply() 0 12 1
1
<?php
2
3
/**
4
 * @license LGPLv3, https://opensource.org/licenses/LGPL-3.0
5
 * @copyright Aimeos (aimeos.org), 2015-2022
6
 */
7
8
9
namespace Aimeos\Base\Config\Decorator;
10
11
12
class MemoryTest extends \PHPUnit\Framework\TestCase
13
{
14
	private $object;
15
16
17
	protected function setUp() : void
18
	{
19
		$conf = new \Aimeos\Base\Config\PHPArray( [] );
20
		$this->object = new \Aimeos\Base\Config\Decorator\Memory( $conf );
21
	}
22
23
24
	protected function tearDown() : void
25
	{
26
		unset( $this->object );
27
	}
28
29
30
	public function testApply()
31
	{
32
		$cfg = ['resource' => ['db' => ['database' => 'test']]];
33
		$conf = new \Aimeos\Base\Config\PHPArray( $cfg );
34
35
		$local = ['resource' => ['db' => ['host' => '127.0.0.1']]];
36
		$object = new \Aimeos\Base\Config\Decorator\Memory( $conf, $local );
37
		$object->apply( ['resource' => ['db' => ['host' => '127.0.0.2', 'database' => 'testdb']]] );
38
39
		$result = $object->get( 'resource/db', [] );
40
		$this->assertEquals( 'testdb', $result['database'] );
41
		$this->assertEquals( '127.0.0.2', $result['host'] );
42
	}
43
44
45
	public function testGetSet()
46
	{
47
		$this->object->set( 'resource/db/host', '127.0.0.1' );
48
		$this->assertEquals( '127.0.0.1', $this->object->get( 'resource/db/host', '127.0.0.2' ) );
49
	}
50
51
52
	public function testGetLocal()
53
	{
54
		$conf = new \Aimeos\Base\Config\PHPArray( [] );
55
		$local = ['resource' => ['db' => ['host' => '127.0.0.1']]];
56
		$object = new \Aimeos\Base\Config\Decorator\Memory( $conf, $local );
57
58
		$this->assertEquals( '127.0.0.1', $object->get( 'resource/db/host', '127.0.0.2' ) );
59
	}
60
61
62
	public function testGetDefault()
63
	{
64
		$this->assertEquals( 3306, $this->object->get( 'resource/db/port', 3306 ) );
65
	}
66
67
68
	public function testGetOverwrite()
69
	{
70
		$cfg = ['resource' => ['db' => ['database' => 'test']]];
71
		$conf = new \Aimeos\Base\Config\PHPArray( $cfg );
72
73
		$local = ['resource' => ['db' => ['host' => '127.0.0.1']]];
74
		$object = new \Aimeos\Base\Config\Decorator\Memory( $conf, $local );
75
76
		$result = $object->get( 'resource/db', [] );
77
		$this->assertArrayNotHasKey( 'database', $result );
78
		$this->assertArrayHasKey( 'host', $result );
79
	}
80
81
82
	public function testSet()
83
	{
84
		$conf = new \Aimeos\Base\Config\PHPArray( [] );
85
		$object = new \Aimeos\Base\Config\Decorator\Memory( $conf, [] );
86
87
		$this->assertInstanceOf( \Aimeos\Base\Config\Iface::class, $object->set( 'notexisting', null ) );
88
		$this->assertEquals( null, $object->get( 'notexisting' ) );
89
	}
90
}
91