public function test_invoker_uses_container()
 {
     $invoker = new ProviderInvoker(new Container());
     $shared = new Dictionary();
     $shared->set('status', 'created');
     $provider = $invoker->create(ComplexProvider::class, $shared);
     $this->assertTrue($provider->create instanceof Foo);
     $this->assertEquals('created', $provider->status);
     $shared->set('status', 'configured');
     $invoker->configure($provider, $shared);
     $this->assertTrue($provider->configure instanceof Bar);
     $this->assertEquals('configured', $provider->status);
     $shared->set('status', 'initialized');
     $invoker->initialize($provider, $shared);
     $this->assertTrue($provider->initialize instanceof Bar);
     $this->assertEquals('initialized', $provider->status);
     $shared->set('status', 'booted');
     $invoker->boot($provider, $shared);
     $this->assertTrue($provider->boot instanceof Bar);
     $this->assertEquals('booted', $provider->status);
     $shared->set('status', 'shutdown');
     $invoker->shutdown($provider, $shared);
     $this->assertTrue($provider->shutdown instanceof Bar);
     $this->assertEquals('shutdown', $provider->status);
 }
Example #2
0
 public function test_getters_and_setters()
 {
     $dict = new Dictionary();
     $dict->set('foo', 'bar');
     $array = ['foo' => 'bar', 'bar' => 'foo', 'dict' => $dict, 'item' => new ArrayableItem('foo')];
     $wrapper = new Dictionary($array);
     $this->assertEquals('bar', $wrapper->get('foo'));
     $wrapper->set('bar', 'baz');
     $this->assertEquals('baz', $wrapper->get('bar'));
     $wrapper->remove('foo');
     $this->assertNull($wrapper->get('foo'));
     $this->assertEquals('yolo', $wrapper->get('foobar', 'yolo'));
     $this->assertFalse($wrapper->has('swag'));
     $wrapper->set('swag', 'yolo');
     $this->assertTrue($wrapper->has('swag'));
     $this->assertEquals(['bar' => 'baz', 'dict' => ['foo' => 'bar'], 'swag' => 'yolo', 'item' => ['id' => 'foo']], $wrapper->toArray());
 }
Example #3
0
 public function test_shared_arguments_are_passed()
 {
     $shared = new Dictionary();
     $provider = new SharedFakeProvider();
     $invoker = new ProviderInvoker();
     $shared->set('status', 'initialized');
     $invoker->initialize($provider, $shared);
     $this->assertEquals('initialized', $provider->status);
     $shared->set('status', 'booted');
     $invoker->boot($provider, $shared);
     $this->assertEquals('booted', $provider->status);
     $shared->set('status', 'shutdown');
     $invoker->shutdown($provider, $shared);
     $this->assertEquals('shutdown', $provider->status);
 }