Code Duplication    Length = 15-18 lines in 3 locations

tests/CrossContainerProcessorTest.php 3 locations

@@ 29-43 (lines=15) @@
26
    /**
27
     * @test
28
     */
29
    public function it_resolves_cross_container_references_in_service_argument(): void
30
    {
31
        $externalContainer = new ContainerBuilder();
32
        $externalContainer->setDefinition('array_object', (new Definition(\ArrayObject::class, [['foo' => 'bar']]))->setPublic(true));
33
34
        $baseContainer = new ContainerBuilder();
35
        $baseContainer->setDefinition('array_object', (new Definition(\ArrayObject::class, [
36
            new Reference('__external__.array_object'),
37
        ]))->setPublic(true));
38
39
        $this->buildContainerWithDependencies($baseContainer, ['external' => $externalContainer]);
40
41
        Assert::assertInstanceOf(\ArrayObject::class, $baseContainer->get('array_object'));
42
        Assert::assertSame(['foo' => 'bar'], $baseContainer->get('array_object')->getArrayCopy());
43
    }
44
45
    /**
46
     * @test
@@ 48-62 (lines=15) @@
45
    /**
46
     * @test
47
     */
48
    public function it_resolves_cross_container_references_in_service_argument_array(): void
49
    {
50
        $externalContainer = new ContainerBuilder();
51
        $externalContainer->setDefinition('std_class', (new Definition(\stdClass::class))->setPublic(true));
52
53
        $baseContainer = new ContainerBuilder();
54
        $baseContainer->setDefinition('array_object', (new Definition(\ArrayObject::class, [
55
            ['std' => ['class' => new Reference('__external__.std_class')]],
56
        ]))->setPublic(true));
57
58
        $this->buildContainerWithDependencies($baseContainer, ['external' => $externalContainer]);
59
60
        Assert::assertInstanceOf(\ArrayObject::class, $baseContainer->get('array_object'));
61
        Assert::assertInstanceOf(\stdClass::class, $baseContainer->get('array_object')['std']['class']);
62
    }
63
64
    /**
65
     * @test
@@ 195-212 (lines=18) @@
192
    /**
193
     * @test
194
     */
195
    public function it_resolves_cross_container_references_in_method_calls(): void
196
    {
197
        $externalContainer = new ContainerBuilder();
198
        $externalContainer->setDefinition('array_object', (new Definition(\ArrayObject::class, [['foo' => 'bar']]))->setPublic(true));
199
200
        $baseContainer = new ContainerBuilder();
201
        $baseContainer->setDefinition(
202
            'array_object',
203
            (new Definition(\ArrayObject::class, [[]]))
204
                ->addMethodCall('exchangeArray', [new Reference('__external__.array_object')])
205
                ->setPublic(true)
206
        );
207
208
        $this->buildContainerWithDependencies($baseContainer, ['external' => $externalContainer]);
209
210
        Assert::assertInstanceOf(\ArrayObject::class, $baseContainer->get('array_object'));
211
        Assert::assertSame(['foo' => 'bar'], $baseContainer->get('array_object')->getArrayCopy());
212
    }
213
214
    /**
215
     * @param ContainerBuilder $baseContainer