1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace Fwk\Di\Xml; |
4
|
|
|
use Fwk\Di\Definitions\ClassDefinition; |
5
|
|
|
use Fwk\Di\Events\AfterServiceLoadedEvent; |
6
|
|
|
|
7
|
|
|
/** |
8
|
|
|
* Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-25 at 00:16:15. |
9
|
|
|
*/ |
10
|
|
|
class ContainerBuilderTest extends \PHPUnit_Framework_TestCase { |
11
|
|
|
|
12
|
|
|
/** |
13
|
|
|
* @var ContainerBuilder |
14
|
|
|
*/ |
15
|
|
|
protected $object; |
16
|
|
|
|
17
|
|
|
/** |
18
|
|
|
* Sets up the fixture, for example, opens a network connection. |
19
|
|
|
* This method is called before a test is executed. |
20
|
|
|
*/ |
21
|
|
|
protected function setUp() { |
22
|
|
|
$this->object = new ContainerBuilder(); |
23
|
|
|
} |
24
|
|
|
|
25
|
|
|
/** |
26
|
|
|
*/ |
27
|
|
|
public function testClassDefinition() { |
28
|
|
|
$container = $this->object->execute(__DIR__ .'/../test-di.xml'); |
29
|
|
|
$this->assertInstanceOf('Fwk\Di\Container', $container); |
30
|
|
|
$this->assertTrue($container->has('myObj')); |
31
|
|
|
$this->assertInstanceOf(ClassDefinition::class, $container->get('myObj')); |
32
|
|
|
$this->assertEquals($container->get('myObj'), $container->get('myObj')); |
33
|
|
|
$this->assertTrue($container->getDefinition('myObj')->isShared()); |
34
|
|
|
$this->assertArrayHasKey('testData', $container->getDefinition('myObj')->getData()); |
35
|
|
|
} |
36
|
|
|
|
37
|
|
|
public function testDefinition() { |
38
|
|
|
$container = new \Fwk\Di\Container(); |
39
|
|
|
$this->assertFalse($container->has('testDef')); |
40
|
|
|
$this->object->execute(__DIR__ .'/../test-di.xml', $container); |
41
|
|
|
$this->assertTrue($container->has('testDef')); |
42
|
|
|
$this->assertEquals('valueOfDefinition', $container->get('testDef')); |
43
|
|
|
$this->assertFalse($container->getDefinition('testDef')->isShared()); |
44
|
|
|
} |
45
|
|
|
|
46
|
|
|
/** |
47
|
|
|
*/ |
48
|
|
|
public function testMapGetterAndSetter() { |
49
|
|
|
$this->assertInstanceOf('Fwk\Di\Xml\ContainerXmlMap', $this->object->getMap()); |
50
|
|
|
$this->object->setMap(new \Fwk\Xml\Maps\Rss()); |
51
|
|
|
$this->assertInstanceOf('Fwk\Xml\Maps\Rss', $this->object->getMap()); |
52
|
|
|
} |
53
|
|
|
|
54
|
|
|
public function testIniProperty() |
55
|
|
|
{ |
56
|
|
|
$container = new \Fwk\Di\Container(); |
57
|
|
|
$this->assertFalse($container->getProperty('iniProp', false)); |
58
|
|
|
$this->object->execute(__DIR__ .'/../test-di.xml', $container); |
59
|
|
|
$this->assertEquals('testing', $container->getProperty('iniProp')); |
60
|
|
|
} |
61
|
|
|
|
62
|
|
|
public function testIniPropertyInArrayDefinition() |
63
|
|
|
{ |
64
|
|
|
$container = new \Fwk\Di\Container(); |
65
|
|
|
$this->object->execute(__DIR__ .'/../test-di.xml', $container); |
66
|
|
|
$this->assertEquals('testing', $container->getProperty('iniProp')); |
67
|
|
|
$arr = $container->get('arrayDef'); |
68
|
|
|
$this->assertArrayHasKey('iniProp', $arr); |
69
|
|
|
$this->assertEquals('testing', $arr['iniProp']); |
70
|
|
|
} |
71
|
|
|
|
72
|
|
|
public function testListeners() |
73
|
|
|
{ |
74
|
|
|
$container = new \Fwk\Di\Container(); |
75
|
|
|
$this->object->execute(__DIR__ .'/../test-di.xml', $container); |
76
|
|
|
|
77
|
|
|
$self = $this; |
78
|
|
|
$container->on('afterServiceLoaded', function(AfterServiceLoadedEvent $event) use ($self) { |
79
|
|
|
$data = $event->getDefinition()->getData(); |
80
|
|
|
$self->assertTrue(isset($data['listener-override'])); |
81
|
|
|
$self->assertTrue(isset($data['service-listener'])); |
82
|
|
|
}); |
83
|
|
|
$container->get('arrayDef'); |
84
|
|
|
} |
85
|
|
|
} |
86
|
|
|
|