ContainerBuilderTest::testDefinition()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 8
rs 9.4285
cc 1
eloc 7
nc 1
nop 0
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