public function testRegisteringCustomProviderAtRuntime() { $request = Request::create('foo', 'GET'); $route = new Route('GET', 'foo', []); $auth = new Shield($this->auth, $this->container, []); $auth->setRequest($request); $auth->setRoute($route); $auth->extend('custom', new CustomProviderStub()); $auth->authenticate($request, $route); $this->assertInstanceOf('CustomProviderStub', $auth->getProviderUsed()); $auth->extend('custom', function ($app) { $this->assertInstanceOf('Illuminate\\Container\\Container', $app); return new CustomProviderStub(); }); $auth->authenticate(); $this->assertInstanceOf('CustomProviderStub', $auth->getProviderUsed()); }