private function getInjector() { $c = new Container(); $c->bind('Fixture\\Momonga', 'momonga', function ($c) { return new Fixture\Momonga(); }); return new Dispatcher($c); }
public function testGetByType() { $c = new Container(); $this->assertNull($c->getByType('Fixture\\Momonga')); $c->bind('Fixture\\Momonga', 'momonga', function ($c) { return new Momonga(); }); $this->assertInstanceOf('Fixture\\Momonga', $c->getByType('Fixture\\Momonga')); }
public function testBasicFacade() { $c = new Container(); $c->bind('Fixture\\Lighter', 'lighter', function ($c) { return new Fixture\Lighter(); }); $c->facade('OilLighter', 'lighter'); Container::setAsFacade($c); $goods = OilLighter::candle('Urushi', 'Sinjyu'); $this->assertEquals('Sinjyu top of the Urushi', $goods); }
public function testWrapStatic() { $c = new Container(); $c->wrap('Fixture\\Wrapped', ['psps'], function ($invocation, $args) { list($a) = $args; ++$a; return $invocation($a); }); $wrapped = $c->newInstance('Fixture\\Wrapped'); $this->assertEquals(42, $wrapped::psps(20)); }
public function testControllerArgs() { $c = new Container(['test' => $this]); $c->bind('Fixture\\Momonga', 'momonga', function ($c) { return new Momonga(); }); $r = new Router($c); $r->get('/', 'Fixture\\MomongaController@argtest'); $req = Request::create('/'); $res = $r->run($req); $this->assertEquals(200, $res->getStatusCode()); $this->assertEquals('Momonga argtest', $res->getContent()); }
/** */ public function testDiByType() { $test = $this; $c = new Container(); $c->bind('Fixture\\Momonga', 'momonga', function ($c) { return new Momonga(); }); $r = new Router($c); $r->get('/', function (Momonga $m) use($test, $c) { $test->assertSame($c['momonga'], $m); return ''; }); $req = Request::create('/'); $res = $r->run($req); $this->assertEquals(200, $res->getStatusCode()); }
public function testNotFrozen() { $c = new Container(); $c['momonga'] = $c->factory(function ($c) { return new Momonga(); }); $c['momonga']; $c->bind('Fixture\\Momonga', 'momonga', function ($c) { return new Momonga(); }); $c = new Container(); $c['momonga'] = 42; $c['momonga']; $c->bind('Fixture\\Momonga', 'momonga', function ($c) { return new Momonga(); }); $this->assertTrue(true); }
public function testInjectToNonObject() { $this->assertEquals(42, $this->container->inject(42)); }