public void testGetTokensForResource() throws NoSuchAlgorithmException, NoSuchPaddingException {
    DefaultTokenCacheStore store = (DefaultTokenCacheStore) setupItems();

    ArrayList<TokenCacheItem> tokens = store.getTokensForResource("resource");
    assertEquals("token size", 1, tokens.size());
    assertEquals("token content", "token", tokens.get(0).getAccessToken());

    tokens = store.getTokensForResource("resource2");
    assertEquals("token size", 3, tokens.size());
  }
  public void testDateTimeFormatterLocaleChange()
      throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException,
          InvalidKeySpecException, KeyStoreException, CertificateException, NoSuchProviderException,
          InvalidAlgorithmParameterException, UnrecoverableEntryException, DigestException,
          IllegalBlockSizeException, BadPaddingException, IOException, NameNotFoundException,
          NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
    DefaultTokenCacheStore store = (DefaultTokenCacheStore) setupItems();
    ArrayList<TokenCacheItem> tokens = store.getTokensForResource("resource");
    // Serializing without miliseconds
    long precision = 1000;
    TokenCacheItem item = tokens.get(0);
    String cacheKey = CacheKey.createCacheKey(item);
    Calendar time = Calendar.getInstance();
    Date dateTimeNow = time.getTime();
    long timeNowMiliSeconds = dateTimeNow.getTime();
    item.setExpiresOn(dateTimeNow);
    store.setItem(cacheKey, item);
    TokenCacheItem fromCache = store.getItem(cacheKey);
    assertTrue(Math.abs(timeNowMiliSeconds - fromCache.getExpiresOn().getTime()) < precision);

    // Parse for different settings
    Locale.setDefault(Locale.FRANCE);
    fromCache = store.getItem(cacheKey);
    assertTrue(Math.abs(timeNowMiliSeconds - fromCache.getExpiresOn().getTime()) < precision);

    Locale.setDefault(Locale.US);
    fromCache = store.getItem(cacheKey);
    assertTrue(Math.abs(timeNowMiliSeconds - fromCache.getExpiresOn().getTime()) < precision);

    TimeZone.setDefault(TimeZone.getTimeZone("GMT+03:00"));
    fromCache = store.getItem(cacheKey);
    assertTrue(Math.abs(timeNowMiliSeconds - fromCache.getExpiresOn().getTime()) < precision);

    TimeZone.setDefault(TimeZone.getTimeZone("GMT+05:00"));
    fromCache = store.getItem(cacheKey);
    assertTrue(Math.abs(timeNowMiliSeconds - fromCache.getExpiresOn().getTime()) < precision);
  }