cache.addElement(query.specUri.toString(), obj, refresh); executor.execute(new SpecUpdater(query, obj)); cache.addElement(query.specUri.toString(), obj, refresh);
@Test(expected = SpecParserException.class) public void negativeCachingEnforced() throws Exception { specFactory.cache.addElement(SPEC_URL, new SpecParserException("broken"), 1000); specFactory.getGadgetSpec(createContext(SPEC_URL, false)); }
+ ", new message " + info.message); nonceCache.addElement(nonceKey, info.message, TimeUnit.SECONDS.toMillis(10 * 60));
+ ", new message " + info.message); nonceCache.addElement(nonceKey, info.message, TimeUnit.SECONDS.toMillis(10 * 60));
@Test(expected = SpecParserException.class) public void negativeCachingEnforced() throws Exception { specFactory.cache.addElement(SPEC_URL.toString(), new SpecParserException("broken"), 1000); specFactory.getGadgetSpec(createContext(SPEC_URL, false)); }
@Test(expected = SpecParserException.class) public void negativeCachingEnforced() throws Exception { specFactory.cache.addElement(SPEC_URL.toString(), new SpecParserException("broken"), 1000); specFactory.getGadgetSpec(createContext(SPEC_URL, false)); }
@Test public void staleSpecReturnedFromCacheOnError() throws Exception { HttpRequest request = createIgnoreCacheRequest(); HttpRequest retriedRequest = createCacheableRequest(); HttpResponse expiredResponse = new HttpResponseBuilder() .setResponse(LOCAL_SPEC_XML.getBytes("UTF-8")) .addHeader("Pragma", "no-cache") .create(); expect(pipeline.execute(request)).andReturn(expiredResponse); expect(pipeline.execute(retriedRequest)).andReturn(HttpResponse.notFound()).once(); replay(pipeline); specFactory.getGadgetSpec(createContext(SPEC_URL, true)); SoftExpiringCache.CachedObject<Object> inCache = specFactory.cache.getElement(SPEC_URL); specFactory.cache.addElement(SPEC_URL, inCache.obj, -1); GadgetSpec spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false)); assertEquals(ALT_LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent()); }
@Test public void staleSpecIsRefetched() throws Exception { HttpRequest request = createIgnoreCacheRequest(); HttpRequest retriedRequest = createCacheableRequest(); HttpResponse expiredResponse = new HttpResponseBuilder() .addHeader("Pragma", "no-cache") .setResponse(LOCAL_SPEC_XML.getBytes("UTF-8")) .create(); HttpResponse updatedResponse = new HttpResponse(ALT_LOCAL_SPEC_XML); expect(pipeline.execute(request)).andReturn(expiredResponse).once(); expect(pipeline.execute(retriedRequest)).andReturn(updatedResponse).once(); replay(pipeline); specFactory.getGadgetSpec(createContext(SPEC_URL, true)); SoftExpiringCache.CachedObject<Object> inCache = specFactory.cache.getElement(SPEC_URL); specFactory.cache.addElement(SPEC_URL, inCache.obj, -1); GadgetSpec spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false)); assertEquals(ALT_LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent()); }
@Test public void staleSpecReturnedFromCacheOnError() throws Exception { HttpRequest request = createIgnoreCacheRequest(); HttpRequest retriedRequest = createCacheableRequest(); HttpResponse expiredResponse = new HttpResponseBuilder() .setResponse(LOCAL_SPEC_XML.getBytes("UTF-8")) .addHeader("Pragma", "no-cache") .create(); expect(pipeline.execute(request)).andReturn(expiredResponse); expect(pipeline.execute(retriedRequest)).andReturn(HttpResponse.notFound()).once(); replay(pipeline); specFactory.getGadgetSpec(createContext(SPEC_URL, true)); SoftExpiringCache.CachedObject<Object> inCache = specFactory.cache.getElement(SPEC_URL.toString()); specFactory.cache.addElement(SPEC_URL.toString(), inCache.obj, -1); GadgetSpec spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false)); assertEquals(ALT_LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent()); }
@Test public void staleSpecReturnedFromCacheOnError() throws Exception { HttpRequest request = createIgnoreCacheRequest(); HttpRequest retriedRequest = createCacheableRequest(); HttpResponse expiredResponse = new HttpResponseBuilder() .setResponse(LOCAL_SPEC_XML.getBytes("UTF-8")) .addHeader("Pragma", "no-cache") .create(); expect(pipeline.execute(request)).andReturn(expiredResponse); expect(pipeline.execute(retriedRequest)).andReturn(HttpResponse.notFound()).once(); replay(pipeline); specFactory.getGadgetSpec(createContext(SPEC_URL, true)); SoftExpiringCache.CachedObject<Object> inCache = specFactory.cache.getElement(SPEC_URL.toString()); specFactory.cache.addElement(SPEC_URL.toString(), inCache.obj, -1); GadgetSpec spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false)); assertEquals(ALT_LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent()); }
@Test public void staleSpecIsRefetched() throws Exception { HttpRequest request = createIgnoreCacheRequest(); HttpRequest retriedRequest = createCacheableRequest(); HttpResponse expiredResponse = new HttpResponseBuilder() .addHeader("Pragma", "no-cache") .setResponse(LOCAL_SPEC_XML.getBytes("UTF-8")) .create(); HttpResponse updatedResponse = new HttpResponse(ALT_LOCAL_SPEC_XML); expect(pipeline.execute(request)).andReturn(expiredResponse).once(); expect(pipeline.execute(retriedRequest)).andReturn(updatedResponse).once(); replay(pipeline); specFactory.getGadgetSpec(createContext(SPEC_URL, true)); SoftExpiringCache.CachedObject<Object> inCache = specFactory.cache.getElement(SPEC_URL.toString()); specFactory.cache.addElement(SPEC_URL.toString(), inCache.obj, -1); GadgetSpec spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false)); assertEquals(ALT_LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent()); }
@Test public void specRefetchedAsync() throws Exception { HttpRequest request = createCacheableRequest(); HttpResponse response = new HttpResponse(ALT_LOCAL_SPEC_XML); expect(pipeline.execute(request)).andReturn(response); replay(pipeline); specFactory.cache.addElement( SPEC_URL, new GadgetSpec(SPEC_URL, LOCAL_SPEC_XML), -1); GadgetSpec spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false)); assertEquals(LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent()); spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false)); assertEquals(ALT_LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent()); assertEquals(1, executor.runnableCount); }
@Test public void staleSpecIsRefetched() throws Exception { HttpRequest request = createIgnoreCacheRequest(); HttpRequest retriedRequest = createCacheableRequest(); HttpResponse expiredResponse = new HttpResponseBuilder() .addHeader("Pragma", "no-cache") .setResponse(LOCAL_SPEC_XML.getBytes("UTF-8")) .create(); HttpResponse updatedResponse = new HttpResponse(ALT_LOCAL_SPEC_XML); expect(pipeline.execute(request)).andReturn(expiredResponse).once(); expect(pipeline.execute(retriedRequest)).andReturn(updatedResponse).once(); replay(pipeline); specFactory.getGadgetSpec(createContext(SPEC_URL, true)); SoftExpiringCache.CachedObject<Object> inCache = specFactory.cache.getElement(SPEC_URL.toString()); specFactory.cache.addElement(SPEC_URL.toString(), inCache.obj, -1); GadgetSpec spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false)); assertEquals(ALT_LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent()); }
@Test public void specRefetchedAsync() throws Exception { HttpRequest request = createCacheableRequest(); HttpResponse response = new HttpResponse(ALT_LOCAL_SPEC_XML); expect(pipeline.execute(request)).andReturn(response); replay(pipeline); specFactory.cache.addElement( SPEC_URL.toString(), new GadgetSpec(SPEC_URL, LOCAL_SPEC_XML), -1); GadgetSpec spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false)); assertEquals(LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent()); spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false)); assertEquals(ALT_LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent()); assertEquals(1, executor.runnableCount); }
@Test public void specRefetchedAsync() throws Exception { HttpRequest request = createCacheableRequest(); HttpResponse response = new HttpResponse(ALT_LOCAL_SPEC_XML); expect(pipeline.execute(request)).andReturn(response); replay(pipeline); specFactory.cache.addElement( SPEC_URL.toString(), new GadgetSpec(SPEC_URL, LOCAL_SPEC_XML), -1); GadgetSpec spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false)); assertEquals(LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent()); spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false)); assertEquals(ALT_LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent()); assertEquals(1, executor.runnableCount); }
@Test public void testGeneralCacheExpiration() { SoftExpiringCache<String, String> expiringCache = makeSoftExpiringCache(); String key = "key1", val = "val1"; expiringCache.addElement(key, val, 240 * 1000); // Time is still 0: should be in the cache. assertEquals(val, expiringCache.getElement(key).obj); assertFalse(expiringCache.getElement(key).isExpired); // Time = 300 seconds: out of cache. timeSource.setCurrentTimeMillis(300 * 1000); assertEquals(val, expiringCache.getElement(key).obj); assertTrue(expiringCache.getElement(key).isExpired); }
@Test public void testGeneralCacheExpiration() { SoftExpiringCache<String, String> expiringCache = makeSoftExpiringCache(); String key = "key1", val = "val1"; expiringCache.addElement(key, val, 240 * 1000); // Time is still 0: should be in the cache. assertEquals(val, expiringCache.getElement(key).obj); assertFalse(expiringCache.getElement(key).isExpired); // Time = 300 seconds: out of cache. timeSource.setCurrentTimeMillis(300 * 1000); assertEquals(val, expiringCache.getElement(key).obj); assertTrue(expiringCache.getElement(key).isExpired); }
@Test public void testGeneralCacheExpiration() { SoftExpiringCache<String, String> expiringCache = makeSoftExpiringCache(); String key = "key1", val = "val1"; expiringCache.addElement(key, val, 240 * 1000); // Time is still 0: should be in the cache. assertEquals(val, expiringCache.getElement(key).obj); assertFalse(expiringCache.getElement(key).isExpired); // Time = 300 seconds: out of cache. timeSource.setCurrentTimeMillis(300 * 1000); assertEquals(val, expiringCache.getElement(key).obj); assertTrue(expiringCache.getElement(key).isExpired); }
@Test public void testGeneralCacheExpiration() { SoftExpiringCache<String, String> expiringCache = makeSoftExpiringCache(); String key = "key1", val = "val1"; expiringCache.addElement(key, val, 240 * 1000); // Time is still 0: should be in the cache. assertEquals(val, expiringCache.getElement(key).obj); assertFalse(expiringCache.getElement(key).isExpired); // Time = 300 seconds: out of cache. timeSource.setCurrentTimeMillis(300 * 1000); assertEquals(val, expiringCache.getElement(key).obj); assertTrue(expiringCache.getElement(key).isExpired); }
@Test public void testGeneralCacheExpiration() { SoftExpiringCache<String, String> expiringCache = makeSoftExpiringCache(); String key = "key1", val = "val1"; expiringCache.addElement(key, val, 240 * 1000); // Time is still 0: should be in the cache. assertEquals(val, expiringCache.getElement(key).obj); assertFalse(expiringCache.getElement(key).isExpired); // Time = 300 seconds: out of cache. timeSource.setCurrentTimeMillis(300 * 1000); assertEquals(val, expiringCache.getElement(key).obj); assertTrue(expiringCache.getElement(key).isExpired); }