コード例 #1
0
 public function testCanCallSettersForDependecyWhenListOfUsed()
 {
     $injector = new Phemto();
     $injector->whenCreating(SomeClassNeedArray::class)->forVariable('dependencies')->willUse(new ListOf(new Reused(DependencyWithSetter::class)));
     $injector->forType(DependencyWithSetter::class)->call('setProperty');
     $object = $injector->create(SomeClassNeedArray::class);
     $this->assertInstanceOf(NotWithoutMe::class, $object->dependencies[0]->property);
 }
 function testSetterInjectionStopsAtFirstMissingArgument()
 {
     $injector = new Phemto();
     $injector->forVariable('maybe')->willUse('phemto\\acceptance\\MaybeThis');
     $injector->forVariable('unlikely')->willUse('phemto\\acceptance\\MaybeThis');
     $injector->forType('phemto\\acceptance\\OptionalArgumentsInSetter')->call('readyToGo');
     $expected = new OptionalArgumentsInSetter();
     $expected->readyToGo(new MaybeThis(), null, new MaybeThis());
     $this->assertEquals($injector->create('phemto\\acceptance\\OptionalArgumentsInSetter'), $expected);
 }
コード例 #3
0
 public function testInstantiateBySettersWhenGraphIsUsed()
 {
     $injector = new Phemto();
     $injector->whenCreating(ThirdClass::class)->forVariable('dependency')->willUse(new Graph(WithSetterByVariable::class, 'graph1'));
     $injector->forType(WithSetterByVariable::class)->call('setProperty');
     $injector->whenCreating(WithSetterByVariable::class, 'graph1')->forVariable('property')->useString('value for graph1');
     $object = $injector->create(ThirdClass::class);
     $this->assertEquals('value for graph1', $object->dependency->property);
 }