Skip to content
This repository was archived by the owner on Jan 21, 2020. It is now read-only.

Commit 13fa5d8

Browse files
committed
Updated test to be more generic with invalid delegators
Use dataProvider delegatorService for all valid services which can be delegated
1 parent 6324a5c commit 13fa5d8

File tree

1 file changed

+37
-28
lines changed

1 file changed

+37
-28
lines changed

src/DelegatorTestTrait.php

Lines changed: 37 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -314,60 +314,69 @@ public function testMultipleAliasesForADelegatedInvokableServiceReceiveSameInsta
314314
self::assertSame($instance, $container->get(TestAsset\Service::class));
315315
}
316316

317-
public function testNonInvokableDelegatorClassNameResultsInExceptionDuringInstanceRetrieval()
318-
{
319-
$container = $this->createContainer([
320-
'invokables' => [
321-
TestAsset\Service::class => TestAsset\Service::class,
322-
],
317+
/**
318+
* @dataProvider delegatorService
319+
*/
320+
public function testNonInvokableDelegatorClassNameResultsInExceptionDuringInstanceRetrieval(
321+
array $config,
322+
string $serviceNameToTest,
323+
string $delegatedServiceName
324+
) : void {
325+
$container = $this->createContainer($config + [
323326
'delegators' => [
324-
TestAsset\Service::class => [
327+
$delegatedServiceName => [
325328
TestAsset\NonInvokableFactory::class,
326329
],
327330
],
328331
]);
329332

330-
self::assertTrue($container->has(TestAsset\Service::class));
333+
self::assertTrue($container->has($serviceNameToTest));
331334
$this->expectException(ContainerExceptionInterface::class);
332-
$container->get(TestAsset\Service::class);
335+
$container->get($serviceNameToTest);
333336
}
334337

335-
public function testNonExistentDelegatorClassResultsInExceptionDuringInstanceRetrieval()
336-
{
337-
$container = $this->createContainer([
338-
'invokables' => [
339-
TestAsset\Service::class => TestAsset\Service::class,
340-
],
338+
/**
339+
* @dataProvider delegatorService
340+
*/
341+
public function testNonExistentDelegatorClassResultsInExceptionDuringInstanceRetrieval(
342+
array $config,
343+
string $serviceNameToTest,
344+
string $delegatedServiceName
345+
) : void {
346+
$container = $this->createContainer($config + [
341347
'delegators' => [
342-
TestAsset\Service::class => [
348+
$delegatedServiceName => [
343349
TestAsset\NonExistentDelegatorFactory::class,
344350
],
345351
],
346352
]);
347353

348-
self::assertTrue($container->has(TestAsset\Service::class));
354+
self::assertTrue($container->has($serviceNameToTest));
349355
$this->expectException(ContainerExceptionInterface::class);
350-
$container->get(TestAsset\Service::class);
356+
$container->get($serviceNameToTest);
351357
}
352358

353-
public function testDelegatorClassNameRequiringConstructorArgumentsResultsInExceptionDuringInstanceRetrieval()
354-
{
355-
$container = $this->createContainer([
356-
'invokables' => [
357-
TestAsset\Service::class => TestAsset\Service::class,
358-
],
359+
/**
360+
* @dataProvider delegatorService
361+
*/
362+
public function testDelegatorClassNameRequiringConstructorArgumentsResultsInExceptionDuringInstanceRetrieval(
363+
array $config,
364+
string $serviceNameToTest,
365+
string $delegatedServiceName
366+
) : void {
367+
$container = $this->createContainer($config + [
359368
'delegators' => [
360-
TestAsset\Service::class => [
369+
$delegatedServiceName => [
361370
TestAsset\FactoryWithRequiredParameters::class,
362371
],
363372
],
364373
]);
365374

366-
self::assertTrue($container->has(TestAsset\Service::class));
375+
self::assertTrue($container->has($serviceNameToTest));
367376

368377
Assert::expectedExceptions(
369-
function () use ($container) {
370-
$container->get(TestAsset\Service::class);
378+
function () use ($container, $serviceNameToTest) {
379+
$container->get($serviceNameToTest);
371380
},
372381
[ArgumentCountError::class, ContainerExceptionInterface::class]
373382
);

0 commit comments

Comments
 (0)