@@ -426,181 +426,12 @@ public function testBindingResolutionExceptionMessage()
426426
427427 /**
428428 * @expectedException \Illuminate\Contracts\Container\BindingResolutionException
429- * @expectedExceptionMessage Target [Illuminate\Tests\Container\IContainerContractStub] is not instantiable while building [Illuminate\Tests\Container\ContainerTestContextInjectOne ].
429+ * @expectedExceptionMessage Target [Illuminate\Tests\Container\IContainerContractStub] is not instantiable while building [Illuminate\Tests\Container\ContainerDependentStub ].
430430 */
431431 public function testBindingResolutionExceptionMessageIncludesBuildStack ()
432432 {
433433 $ container = new Container ;
434- $ container ->make (ContainerTestContextInjectOne::class, []);
435- }
436-
437- public function testContainerCanInjectDifferentImplementationsDependingOnContext ()
438- {
439- $ container = new Container ;
440-
441- $ container ->bind (IContainerContractStub::class, ContainerImplementationStub::class);
442-
443- $ container ->when (ContainerTestContextInjectOne::class)->needs (IContainerContractStub::class)->give (ContainerImplementationStub::class);
444- $ container ->when (ContainerTestContextInjectTwo::class)->needs (IContainerContractStub::class)->give (ContainerImplementationStubTwo::class);
445-
446- $ one = $ container ->make (ContainerTestContextInjectOne::class);
447- $ two = $ container ->make (ContainerTestContextInjectTwo::class);
448-
449- $ this ->assertInstanceOf (ContainerImplementationStub::class, $ one ->impl );
450- $ this ->assertInstanceOf (ContainerImplementationStubTwo::class, $ two ->impl );
451-
452- /*
453- * Test With Closures
454- */
455- $ container = new Container ;
456-
457- $ container ->bind (IContainerContractStub::class, ContainerImplementationStub::class);
458-
459- $ container ->when (ContainerTestContextInjectOne::class)->needs (IContainerContractStub::class)->give (ContainerImplementationStub::class);
460- $ container ->when (ContainerTestContextInjectTwo::class)->needs (IContainerContractStub::class)->give (function ($ container ) {
461- return $ container ->make (ContainerImplementationStubTwo::class);
462- });
463-
464- $ one = $ container ->make (ContainerTestContextInjectOne::class);
465- $ two = $ container ->make (ContainerTestContextInjectTwo::class);
466-
467- $ this ->assertInstanceOf (ContainerImplementationStub::class, $ one ->impl );
468- $ this ->assertInstanceOf (ContainerImplementationStubTwo::class, $ two ->impl );
469- }
470-
471- public function testContextualBindingWorksForExistingInstancedBindings ()
472- {
473- $ container = new Container ;
474-
475- $ container ->instance (IContainerContractStub::class, new ContainerImplementationStub );
476-
477- $ container ->when (ContainerTestContextInjectOne::class)->needs (IContainerContractStub::class)->give (ContainerImplementationStubTwo::class);
478-
479- $ this ->assertInstanceOf (ContainerImplementationStubTwo::class, $ container ->make (ContainerTestContextInjectOne::class)->impl );
480- }
481-
482- public function testContextualBindingWorksForNewlyInstancedBindings ()
483- {
484- $ container = new Container ;
485-
486- $ container ->when (ContainerTestContextInjectOne::class)->needs (IContainerContractStub::class)->give (ContainerImplementationStubTwo::class);
487-
488- $ container ->instance (IContainerContractStub::class, new ContainerImplementationStub );
489-
490- $ this ->assertInstanceOf (
491- ContainerImplementationStubTwo::class,
492- $ container ->make (ContainerTestContextInjectOne::class)->impl
493- );
494- }
495-
496- public function testContextualBindingWorksOnExistingAliasedInstances ()
497- {
498- $ container = new Container ;
499-
500- $ container ->instance ('stub ' , new ContainerImplementationStub );
501- $ container ->alias ('stub ' , IContainerContractStub::class);
502-
503- $ container ->when (ContainerTestContextInjectOne::class)->needs (IContainerContractStub::class)->give (ContainerImplementationStubTwo::class);
504-
505- $ this ->assertInstanceOf (
506- ContainerImplementationStubTwo::class,
507- $ container ->make (ContainerTestContextInjectOne::class)->impl
508- );
509- }
510-
511- public function testContextualBindingWorksOnNewAliasedInstances ()
512- {
513- $ container = new Container ;
514-
515- $ container ->when (ContainerTestContextInjectOne::class)->needs (IContainerContractStub::class)->give (ContainerImplementationStubTwo::class);
516-
517- $ container ->instance ('stub ' , new ContainerImplementationStub );
518- $ container ->alias ('stub ' , IContainerContractStub::class);
519-
520- $ this ->assertInstanceOf (
521- ContainerImplementationStubTwo::class,
522- $ container ->make (ContainerTestContextInjectOne::class)->impl
523- );
524- }
525-
526- public function testContextualBindingWorksOnNewAliasedBindings ()
527- {
528- $ container = new Container ;
529-
530- $ container ->when (ContainerTestContextInjectOne::class)->needs (IContainerContractStub::class)->give (ContainerImplementationStubTwo::class);
531-
532- $ container ->bind ('stub ' , ContainerImplementationStub::class);
533- $ container ->alias ('stub ' , IContainerContractStub::class);
534-
535- $ this ->assertInstanceOf (
536- ContainerImplementationStubTwo::class,
537- $ container ->make (ContainerTestContextInjectOne::class)->impl
538- );
539- }
540-
541- public function testContextualBindingWorksForMultipleClasses ()
542- {
543- $ container = new Container ;
544-
545- $ container ->bind (IContainerContractStub::class, ContainerImplementationStub::class);
546-
547- $ container ->when ([ContainerTestContextInjectTwo::class, ContainerTestContextInjectThree::class])->needs (IContainerContractStub::class)->give (ContainerImplementationStubTwo::class);
548-
549- $ this ->assertInstanceOf (
550- ContainerImplementationStub::class,
551- $ container ->make (ContainerTestContextInjectOne::class)->impl
552- );
553-
554- $ this ->assertInstanceOf (
555- ContainerImplementationStubTwo::class,
556- $ container ->make (ContainerTestContextInjectTwo::class)->impl
557- );
558-
559- $ this ->assertInstanceOf (
560- ContainerImplementationStubTwo::class,
561- $ container ->make (ContainerTestContextInjectThree::class)->impl
562- );
563- }
564-
565- public function testContextualBindingDoesntOverrideNonContextualResolution ()
566- {
567- $ container = new Container ;
568-
569- $ container ->instance ('stub ' , new ContainerImplementationStub );
570- $ container ->alias ('stub ' , IContainerContractStub::class);
571-
572- $ container ->when (ContainerTestContextInjectTwo::class)->needs (IContainerContractStub::class)->give (ContainerImplementationStubTwo::class);
573-
574- $ this ->assertInstanceOf (
575- ContainerImplementationStubTwo::class,
576- $ container ->make (ContainerTestContextInjectTwo::class)->impl
577- );
578-
579- $ this ->assertInstanceOf (
580- ContainerImplementationStub::class,
581- $ container ->make (ContainerTestContextInjectOne::class)->impl
582- );
583- }
584-
585- public function testContextuallyBoundInstancesAreNotUnnecessarilyRecreated ()
586- {
587- ContainerTestContextInjectInstantiations::$ instantiations = 0 ;
588-
589- $ container = new Container ;
590-
591- $ container ->instance (IContainerContractStub::class, new ContainerImplementationStub );
592- $ container ->instance (ContainerTestContextInjectInstantiations::class, new ContainerTestContextInjectInstantiations );
593-
594- $ this ->assertEquals (1 , ContainerTestContextInjectInstantiations::$ instantiations );
595-
596- $ container ->when (ContainerTestContextInjectOne::class)->needs (IContainerContractStub::class)->give (ContainerTestContextInjectInstantiations::class);
597-
598- $ container ->make (ContainerTestContextInjectOne::class);
599- $ container ->make (ContainerTestContextInjectOne::class);
600- $ container ->make (ContainerTestContextInjectOne::class);
601- $ container ->make (ContainerTestContextInjectOne::class);
602-
603- $ this ->assertEquals (1 , ContainerTestContextInjectInstantiations::$ instantiations );
434+ $ container ->make (ContainerDependentStub::class, []);
604435 }
605436
606437 public function testContainerTags ()
@@ -766,21 +597,6 @@ public function testItThrowsExceptionWhenAbstractIsSameAsAlias()
766597 $ container ->getAlias ('name ' );
767598 }
768599
769- public function testContainerCanInjectSimpleVariable ()
770- {
771- $ container = new Container ;
772- $ container ->when (ContainerInjectVariableStub::class)->needs ('$something ' )->give (100 );
773- $ instance = $ container ->make (ContainerInjectVariableStub::class);
774- $ this ->assertEquals (100 , $ instance ->something );
775-
776- $ container = new Container ;
777- $ container ->when (ContainerInjectVariableStub::class)->needs ('$something ' )->give (function ($ container ) {
778- return $ container ->make (ContainerConcreteStub::class);
779- });
780- $ instance = $ container ->make (ContainerInjectVariableStub::class);
781- $ this ->assertInstanceOf (ContainerConcreteStub::class, $ instance ->something );
782- }
783-
784600 public function testContainerGetFactory ()
785601 {
786602 $ container = new Container ;
@@ -806,25 +622,6 @@ public function testExtensionWorksOnAliasedBindings()
806622 $ this ->assertEquals ('some value extended ' , $ container ->make ('something ' ));
807623 }
808624
809- public function testContextualBindingWorksWithAliasedTargets ()
810- {
811- $ container = new Container ;
812-
813- $ container ->bind (IContainerContractStub::class, ContainerImplementationStub::class);
814- $ container ->alias (IContainerContractStub::class, 'interface-stub ' );
815-
816- $ container ->alias (ContainerImplementationStub::class, 'stub-1 ' );
817-
818- $ container ->when (ContainerTestContextInjectOne::class)->needs ('interface-stub ' )->give ('stub-1 ' );
819- $ container ->when (ContainerTestContextInjectTwo::class)->needs ('interface-stub ' )->give (ContainerImplementationStubTwo::class);
820-
821- $ one = $ container ->make (ContainerTestContextInjectOne::class);
822- $ two = $ container ->make (ContainerTestContextInjectTwo::class);
823-
824- $ this ->assertInstanceOf (ContainerImplementationStub::class, $ one ->impl );
825- $ this ->assertInstanceOf (ContainerImplementationStubTwo::class, $ two ->impl );
826- }
827-
828625 public function testMakeWithMethodIsAnAliasForMakeMethod ()
829626 {
830627 $ mock = $ this ->getMockBuilder (Container::class)
@@ -1046,36 +843,6 @@ public function init()
1046843 }
1047844}
1048845
1049- class ContainerTestContextInjectOne
1050- {
1051- public $ impl ;
1052-
1053- public function __construct (IContainerContractStub $ impl )
1054- {
1055- $ this ->impl = $ impl ;
1056- }
1057- }
1058-
1059- class ContainerTestContextInjectTwo
1060- {
1061- public $ impl ;
1062-
1063- public function __construct (IContainerContractStub $ impl )
1064- {
1065- $ this ->impl = $ impl ;
1066- }
1067- }
1068-
1069- class ContainerTestContextInjectThree
1070- {
1071- public $ impl ;
1072-
1073- public function __construct (IContainerContractStub $ impl )
1074- {
1075- $ this ->impl = $ impl ;
1076- }
1077- }
1078-
1079846class ContainerInjectVariableStub
1080847{
1081848 public $ something ;
@@ -1095,13 +862,3 @@ public function __construct(ContainerConcreteStub $concrete, $something)
1095862 $ this ->something = $ something ;
1096863 }
1097864}
1098-
1099- class ContainerTestContextInjectInstantiations implements IContainerContractStub
1100- {
1101- public static $ instantiations ;
1102-
1103- public function __construct ()
1104- {
1105- static ::$ instantiations ++;
1106- }
1107- }
0 commit comments