public function resolve(Context $context)
 {
     if (f\not($context->getScopes()->isEmpty())) {
         return $context;
     }
     $defaultScopes = ScopeCollection::createFromString(f\get($context->getClient(), 'defaultScope'));
     return new Context($context->getClient(), $context->getUserId(), $defaultScopes);
 }
 public function testOk()
 {
     $client = $this->createClient();
     $accessToken = $this->createAccessToken();
     $refreshToken = $this->createRefreshToken(['accessTokenToken' => f\get($accessToken, 'token')]);
     $context = new Context($client, f\get($accessToken, 'userId'), ScopeCollection::createFromString(f\get($accessToken, 'scope')));
     $params = new \stdClass();
     $this->refreshTokenRepository->shouldReceive('find')->with(f\get($refreshToken, 'token'))->once()->andReturn($refreshToken)->ordered();
     $this->accessTokenRepository->shouldReceive('find')->with(f\get($refreshToken, 'accessTokenToken'))->andReturn($accessToken)->ordered();
     $this->refreshTokenRepository->shouldReceive('remove')->with($refreshToken)->once()->ordered();
     $this->accessTokenRepository->shouldReceive('remove')->with($accessToken)->once()->ordered();
     $this->tokenCreator->shouldReceive('create')->with(\Mockery::on(function ($v) use($context) {
         return $v == $context;
     }))->once()->andReturn($params);
     $this->assertSame($params, $this->processor->process($client, ['refresh_token' => f\get($refreshToken, 'token')]));
 }
 private function getContext(Client $client, array $inputData)
 {
     if (f\not(f\contains($inputData, 'refresh_token'))) {
         throw new RefreshTokenNotFoundOAuthErrorException();
     }
     $refreshToken = $this->refreshTokenRepository->find(f\get($inputData, 'refresh_token'));
     if (f\not($refreshToken)) {
         throw new InvalidRefreshTokenOAuthErrorException();
     }
     if ($refreshToken->isExpired()) {
         throw new ExpiredRefreshTokenOAuthErrorException();
     }
     $accessToken = $this->accessTokenRepository->find(f\get($refreshToken, 'accessTokenToken'));
     if (f\not($accessToken)) {
         $this->refreshTokenRepository->remove($refreshToken);
         throw new InvalidRefreshTokenOAuthErrorException();
     }
     $this->refreshTokenRepository->remove($refreshToken);
     $this->accessTokenRepository->remove($accessToken);
     return new Context($client, f\get($accessToken, 'userId'), ScopeCollection::createFromString(f\get($accessToken, 'scope')));
 }
 public function getScopes(array $inputData)
 {
     $string = f\get_or($inputData, 'scope', null);
     return ScopeCollection::createFromString($string);
 }
 public function testCreateFromString()
 {
     $this->assertEquals(new ScopeCollection([]), ScopeCollection::createFromString(''));
     $this->assertEquals(new ScopeCollection([new Scope('foo')]), ScopeCollection::createFromString('foo'));
     $this->assertEquals(new ScopeCollection([new Scope('foo'), new Scope('bar')]), ScopeCollection::createFromString('foo bar'));
 }