public function getSessionRepository()
 {
     $emitter = m::mock('League\\Event\\Emitter');
     $emitter->shouldReceive('emit')->once();
     $server = m::mock('League\\OAuth2\\Server\\AbstractServer');
     $server->shouldReceive('getEventEmitter')->once()->andReturn($emitter);
     $repo = new FluentSession($this->app['db']);
     $repo->setServer($server);
     return $repo;
 }
 /**
  * Bind the storage implementations to the IoC container.
  *
  * @return void
  */
 public function registerStorageBindings()
 {
     $provider = $this;
     $this->app->singleton(FluentAccessToken::class, function () use($provider) {
         $storage = new FluentAccessToken($provider->app['db']);
         $storage->setConnectionName($provider->getConnectionName());
         return $storage;
     });
     $this->app->singleton(FluentAuthCode::class, function () use($provider) {
         $storage = new FluentAuthCode($provider->app['db']);
         $storage->setConnectionName($provider->getConnectionName());
         return $storage;
     });
     $this->app->singleton(FluentClient::class, function ($app) use($provider) {
         $limitClientsToGrants = $app['config']->get('oauth2.limit_clients_to_grants');
         $storage = new FluentClient($provider->app['db'], $limitClientsToGrants);
         $storage->setConnectionName($provider->getConnectionName());
         return $storage;
     });
     $this->app->singleton(FluentRefreshToken::class, function () use($provider) {
         $storage = new FluentRefreshToken($provider->app['db']);
         $storage->setConnectionName($provider->getConnectionName());
         return $storage;
     });
     $this->app->singleton(FluentScope::class, function ($app) use($provider) {
         $limitClientsToScopes = $app['config']->get('oauth2.limit_clients_to_scopes');
         $limitScopesToGrants = $app['config']->get('oauth2.limit_scopes_to_grants');
         $storage = new FluentScope($provider->app['db'], $limitClientsToScopes, $limitScopesToGrants);
         $storage->setConnectionName($provider->getConnectionName());
         return $storage;
     });
     $this->app->singleton(FluentSession::class, function () use($provider) {
         $storage = new FluentSession($provider->app['db']);
         $storage->setConnectionName($provider->getConnectionName());
         return $storage;
     });
 }
 /**
  * Bind the storage implementations to the IoC container
  * @return void
  */
 public function registerStorageBindings()
 {
     $provider = $this;
     $this->app->bindShared('LucaDegasperi\\OAuth2Server\\Storage\\FluentAccessToken', function () use($provider) {
         $storage = new FluentAccessToken($provider->app['db']);
         $storage->setConnectionName($provider->getConnectionName());
         return $storage;
     });
     $this->app->bindShared('LucaDegasperi\\OAuth2Server\\Storage\\FluentAuthCode', function () use($provider) {
         $storage = new FluentAuthCode($provider->app['db']);
         $storage->setConnectionName($provider->getConnectionName());
         return $storage;
     });
     $this->app->bindShared('LucaDegasperi\\OAuth2Server\\Storage\\FluentClient', function ($app) use($provider) {
         $limitClientsToGrants = $app['config']->get('oauth2.limit_clients_to_grants');
         $storage = new FluentClient($provider->app['db'], $limitClientsToGrants);
         $storage->setConnectionName($provider->getConnectionName());
         return $storage;
     });
     $this->app->bindShared('LucaDegasperi\\OAuth2Server\\Storage\\FluentRefreshToken', function () use($provider) {
         $storage = new FluentRefreshToken($provider->app['db']);
         $storage->setConnectionName($provider->getConnectionName());
         return $storage;
     });
     $this->app->bindShared('LucaDegasperi\\OAuth2Server\\Storage\\FluentScope', function ($app) use($provider) {
         $limitClientsToScopes = $app['config']->get('oauth2.limit_clients_to_scopes');
         $limitScopesToGrants = $app['config']->get('oauth2.limit_scopes_to_grants');
         $storage = new FluentScope($provider->app['db'], $limitClientsToScopes, $limitScopesToGrants);
         $storage->setConnectionName($provider->getConnectionName());
         return $storage;
     });
     $this->app->bindShared('LucaDegasperi\\OAuth2Server\\Storage\\FluentSession', function () use($provider) {
         $storage = new FluentSession($provider->app['db']);
         $storage->setConnectionName($provider->getConnectionName());
         return $storage;
     });
 }
 /**
  * Associate a scope with a session
  *
  * @param \League\OAuth2\Server\Entity\SessionEntity $session The session
  * @param \League\OAuth2\Server\Entity\ScopeEntity $scope The scope
  *
  * @return void
  */
 public function associateScope(SessionEntity $session, ScopeEntity $scope)
 {
     $this->storage->associateScope($session, $scope);
 }