public function testInstanceManagerCanPersistInstancesWithParameters() { $im = new InstanceManager(); $obj1 = new TestAsset\BasicClass(); $obj2 = new TestAsset\BasicClass(); $obj3 = new TestAsset\BasicClass(); $im->addSharedInstance($obj1, 'foo'); $im->addSharedInstanceWithParameters($obj2, 'foo', array('foo' => 'bar')); $im->addSharedInstanceWithParameters($obj3, 'foo', array('foo' => 'baz')); $this->assertSame($obj1, $im->getSharedInstance('foo')); $this->assertSame($obj2, $im->getSharedInstanceWithParameters('foo', array('foo' => 'bar'))); $this->assertSame($obj3, $im->getSharedInstanceWithParameters('foo', array('foo' => 'baz'))); }
public function testInstanceManagerCanPersistInstanceWithArrayWithClosure() { $im = new InstanceManager(); $obj1 = new TestAsset\BasicClass(); $im->addSharedInstanceWithParameters($obj1, 'foo', array('foo' => array(function () { }))); $this->assertSame($obj1, $im->getSharedInstanceWithParameters('foo', array('foo' => array(function () { })))); }