public function register(Application $app) { $app['soauth.test'] = false; $app['security.authentication_listener.factory.soauth'] = $app->protect(function ($name, $options) use($app) { $app['security.authentication_provider.' . $name . '.soauth'] = $app->share(function () use($app, $name) { return null; }); $app['security.authentication_listener.' . $name . '.soauth'] = $app->share(function () use($app, $name) { $listener = new Listener($name, $app['security'], $app['soauth.access.provider']); if (isset($app['logger']) && $app['logger']) { $listener->setLogger($app['logger']); } return $listener; }); return array('security.authentication_provider.' . $name . '.soauth', 'security.authentication_listener.' . $name . '.soauth', null, 'pre_auth'); }); $app['soauth.access.provider'] = $app->share(function (Application $app) { $accessProvider = new AccessProvider($app['soauth.test'] ? $app['soauth.storage.handler.mock'] : $app['soauth.storage.handler'], $app['soauth.client.provider'], $app['soauth.user.provider']); if (isset($app['logger']) && $app['logger']) { $accessProvider->setLogger($app['logger']); } return $accessProvider; }); $app['soauth.storage.handler.mock'] = $app->share(function (Application $app) { return new MockStorageHandler(); }); $app['soauth.client.provider'] = $app->share(function (Application $app) { return new ClientProvider($app['soauth.client.provider.config']); }); $app['soauth.user.provider'] = $app->share(function (Application $app) { return new UserProvider($app['soauth.user.provider.config']); }); $app['soauth.user.provider.config'] = []; $app['soauth.client.provider.config'] = []; }
/** * @expectedException Renegare\Soauth\SoauthException */ public function testGenerateInvalidClientException() { $mockStorage = new MockStorageHandler(); $mockClientProvider = $this->getMock('Renegare\\Soauth\\ClientProviderInterface'); $mockUserProvider = $this->getMock('Renegare\\Soauth\\UserProviderInterface'); $mockRequest = $this->getMock('Symfony\\Component\\HttpFoundation\\Request'); $mockUserProvider->expects($this->any())->method('getUser')->will($this->returnValue($this->getMock('Symfony\\Component\\Security\\Core\\User\\UserInterface'))); $mockUserProvider->expects($this->any())->method('isValid')->will($this->returnValue(true)); $mockClient = $this->getMock('Renegare\\Soauth\\ClientInterface'); $mockClientProvider->expects($this->once())->method('getClient')->will($this->returnCallback(function ($id) use($mockClient) { $this->assertEquals(1, $id); return $mockClient; })); $mockClientProvider->expects($this->once())->method('isValid')->will($this->returnCallback(function ($client) use($mockClient) { $this->assertSame($mockClient, $client); return false; })); $accessProvider = new AccessProvider($mockStorage, $mockClientProvider, $mockUserProvider); $accessProvider->generate($mockRequest, 1, '...', 'user...'); }