public function testPutAndGetAccessToken()
 {
     $server = m::mock(AbstractServer::class);
     $accessToken = new AccessTokenEntity($server);
     $accessToken->setId('my_token');
     $accessToken->setExpireTime(1);
     $this->cache->putAccessToken($accessToken);
     $accessToken = $this->cache->getAccessToken('my_token');
     $this->assertSame(['id' => 'my_token', 'expire_time' => 1], $accessToken);
 }
 /**
  * Get an instance of Entity\AccessTokenEntity
  *
  * @param string $token The access token
  *
  * @return \League\OAuth2\Server\Entity\AccessTokenEntity | null
  */
 public function get($token)
 {
     //Try to get result from cache
     $result = $this->cache->getAccessToken($token);
     //If cache is empty
     if (empty($result)) {
         //Get from storage
         $result = $this->storage->get($token);
         //If we have find data from storage, put to cache
         if ($result) {
             $this->cache->putAccessToken($result);
         }
         //Else we have find data from cache, build the entity !
     } else {
         $result = (new AccessTokenEntity($this->server))->setId($result['id'])->setExpireTime((int) $result['expire_time']);
     }
     return $result;
 }