Skip to content

Commit

Permalink
[DependencyInjection] Add test coverage for `AutowireCallable::buildD…
Browse files Browse the repository at this point in the history
…efinition()`
  • Loading branch information
alexandre-daubois committed Jun 19, 2024
1 parent 85cfebb commit a4df9df
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions Tests/Attribute/AutowireCallableTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,35 @@ public function testArrayCallableWithServiceOnly()
self::assertEquals([new Reference('my_service'), '__invoke'], $attribute->value);
self::assertFalse($attribute->lazy);
}

public function testLazyAsArrayInDefinition()
{
$attribute = new AutowireCallable(callable: [Foo::class, 'myMethod'], lazy: 'my_lazy_class');

self::assertSame([Foo::class, 'myMethod'], $attribute->value);

$definition = $attribute->buildDefinition('my_value', 'my_custom_type', new \ReflectionParameter([Foo::class, 'myMethod'], 'myParameter'));

self::assertSame('my_lazy_class', $definition->getClass());
self::assertTrue($definition->isLazy());
}

public function testLazyIsFalseInDefinition()
{
$attribute = new AutowireCallable(callable: [Foo::class, 'myMethod'], lazy: false);

self::assertFalse($attribute->lazy);

$definition = $attribute->buildDefinition('my_value', 'my_custom_type', new \ReflectionParameter([Foo::class, 'myMethod'], 'myParameter'));

self::assertSame('my_custom_type', $definition->getClass());
self::assertFalse($definition->isLazy());
}
}

class Foo
{
public function myMethod(callable $myParameter)
{
}
}

0 comments on commit a4df9df

Please sign in to comment.