Skip to content

Commit a4df9df

Browse files
[DependencyInjection] Add test coverage for AutowireCallable::buildDefinition()
1 parent 85cfebb commit a4df9df

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

Tests/Attribute/AutowireCallableTest.php

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,35 @@ public function testArrayCallableWithServiceOnly()
9393
self::assertEquals([new Reference('my_service'), '__invoke'], $attribute->value);
9494
self::assertFalse($attribute->lazy);
9595
}
96+
97+
public function testLazyAsArrayInDefinition()
98+
{
99+
$attribute = new AutowireCallable(callable: [Foo::class, 'myMethod'], lazy: 'my_lazy_class');
100+
101+
self::assertSame([Foo::class, 'myMethod'], $attribute->value);
102+
103+
$definition = $attribute->buildDefinition('my_value', 'my_custom_type', new \ReflectionParameter([Foo::class, 'myMethod'], 'myParameter'));
104+
105+
self::assertSame('my_lazy_class', $definition->getClass());
106+
self::assertTrue($definition->isLazy());
107+
}
108+
109+
public function testLazyIsFalseInDefinition()
110+
{
111+
$attribute = new AutowireCallable(callable: [Foo::class, 'myMethod'], lazy: false);
112+
113+
self::assertFalse($attribute->lazy);
114+
115+
$definition = $attribute->buildDefinition('my_value', 'my_custom_type', new \ReflectionParameter([Foo::class, 'myMethod'], 'myParameter'));
116+
117+
self::assertSame('my_custom_type', $definition->getClass());
118+
self::assertFalse($definition->isLazy());
119+
}
120+
}
121+
122+
class Foo
123+
{
124+
public function myMethod(callable $myParameter)
125+
{
126+
}
96127
}

0 commit comments

Comments
 (0)