@@ 36-51 (lines=16) @@ | ||
33 | /** |
|
34 | * @test |
|
35 | */ |
|
36 | public function it_resolves_cross_container_references_in_service_argument_array() |
|
37 | { |
|
38 | $externalContainer = new ContainerBuilder(); |
|
39 | $externalContainer->setDefinition('std_class', new Definition(\stdClass::class)); |
|
40 | ||
41 | $baseContainer = new ContainerBuilder(); |
|
42 | $baseContainer->setDefinition('array_object', new Definition(\ArrayObject::class, [ |
|
43 | ['std_class' => new Reference('__external__.std_class')], |
|
44 | ])); |
|
45 | ||
46 | $this->buildContainerWithDependencies($baseContainer, ['external' => $externalContainer]); |
|
47 | ||
48 | static::assertTrue($baseContainer->has('array_object')); |
|
49 | static::assertInstanceOf(\ArrayObject::class, $baseContainer->get('array_object')); |
|
50 | static::assertInstanceOf(\stdClass::class, $baseContainer->get('array_object')['std_class']); |
|
51 | } |
|
52 | ||
53 | /** |
|
54 | * @test |
|
@@ 56-71 (lines=16) @@ | ||
53 | /** |
|
54 | * @test |
|
55 | */ |
|
56 | public function it_resolves_cross_container_references_in_service_argument_nested_array() |
|
57 | { |
|
58 | $externalContainer = new ContainerBuilder(); |
|
59 | $externalContainer->setDefinition('std_class', new Definition(\stdClass::class)); |
|
60 | ||
61 | $baseContainer = new ContainerBuilder(); |
|
62 | $baseContainer->setDefinition('array_object', new Definition(\ArrayObject::class, [ |
|
63 | ['std' => ['class' => new Reference('__external__.std_class')]], |
|
64 | ])); |
|
65 | ||
66 | $this->buildContainerWithDependencies($baseContainer, ['external' => $externalContainer]); |
|
67 | ||
68 | static::assertTrue($baseContainer->has('array_object')); |
|
69 | static::assertInstanceOf(\ArrayObject::class, $baseContainer->get('array_object')); |
|
70 | static::assertInstanceOf(\stdClass::class, $baseContainer->get('array_object')['std']['class']); |
|
71 | } |
|
72 | ||
73 | /** |
|
74 | * @test |
|
@@ 76-93 (lines=18) @@ | ||
73 | /** |
|
74 | * @test |
|
75 | */ |
|
76 | public function it_resolves_cross_container_references_in_service_argument_anonymous_definition() |
|
77 | { |
|
78 | $externalContainer = new ContainerBuilder(); |
|
79 | $externalContainer->setDefinition('std_class', new Definition(\stdClass::class)); |
|
80 | ||
81 | $baseContainer = new ContainerBuilder(); |
|
82 | $baseContainer->setDefinition('array_object', new Definition(\ArrayObject::class, [ |
|
83 | new Definition(\ArrayObject::class, [ |
|
84 | ['std_class' => new Reference('__external__.std_class')], |
|
85 | ]), |
|
86 | ])); |
|
87 | ||
88 | $this->buildContainerWithDependencies($baseContainer, ['external' => $externalContainer]); |
|
89 | ||
90 | static::assertTrue($baseContainer->has('array_object')); |
|
91 | static::assertInstanceOf(\ArrayObject::class, $baseContainer->get('array_object')); |
|
92 | static::assertInstanceOf(\stdClass::class, $baseContainer->get('array_object')->getArrayCopy()['std_class']); |
|
93 | } |
|
94 | ||
95 | /** |
|
96 | * @test |