/**
  * Verify call with scopes using OR logic
  *
  * @test
  * @covers ::call
  *
  * @return void
  */
 public function callWithEitherScope()
 {
     $storage = new \OAuth2\Storage\Memory(['access_tokens' => ['atokenvalue' => ['access_token' => 'atokenvalue', 'client_id' => 'a client id', 'user_id' => 'a user id', 'expires' => 99999999900, 'scope' => 'basicUser withPermission anExtraScope']]]);
     $server = new \OAuth2\Server($storage, ['enforce_state' => true, 'allow_implicit' => false, 'access_lifetime' => 3600]);
     \Slim\Environment::mock(['CONTENT_TYPE' => 'application/json', 'PATH_INFO' => '/foo']);
     $slim = self::getSlimInstance();
     $authorization = new Authorization($server);
     $authorization->setApplication($slim);
     $slim->get('/foo', $authorization->withRequiredScope(['superUser', ['basicUser', 'withPermission']]), function () {
     });
     $env = \Slim\Environment::getInstance();
     $slim->request = new \Slim\Http\Request($env);
     $slim->request->headers->set('Authorization', 'Bearer atokenvalue');
     $slim->response = new \Slim\Http\Response();
     $slim->run();
     $this->assertSame(200, $slim->response->status());
     $this->assertSame(['access_token' => 'atokenvalue', 'client_id' => 'a client id', 'user_id' => 'a user id', 'expires' => 99999999900, 'scope' => 'basicUser withPermission anExtraScope'], $slim->token);
 }