public boolean retrieve(long maxAge) throws GeoWebCacheException { try { if (isMetaTileCacheOnly) { boolean cached = storageBroker.getTransient((TileObject) stObj); this.setCacheResult(cached ? CacheResult.HIT : CacheResult.MISS); return cached; } boolean ret = storageBroker.get((TileObject) stObj); // Do we use expiration, and if so, is the tile recent enough ? if (ret && maxAge > 0 && stObj.getCreated() + maxAge < System.currentTimeMillis()) { ret = false; } if (ret) { this.setCacheResult(CacheResult.HIT); } else { this.setCacheResult(CacheResult.MISS); } return ret; } catch (StorageException se) { log.warn(se.getMessage()); return false; } }
private void runBasicTileTest(StorageBroker sb, long run, String name) throws StorageException { long start = System.currentTimeMillis(); for (int i = 1; i < TILE_GET_COUNT; i++) { long tmp = (long) Math.log(i) + 1; long tmp2 = i % tmp; long[] xyz = {tmp2, tmp2, (long) Math.log10(i)}; TileObject queryObj2 = TileObject.createQueryTileObject( "test", xyz, "hefty-gridSet:id1", "image/jpeg", null); sb.get(queryObj2); } long stop = System.currentTimeMillis(); System.out.println( name + " - run " + run + ", " + TILE_GET_COUNT + " gets took " + Long.toString(stop - start) + "ms"); }
@SuppressWarnings({ "unchecked", "rawtypes" }) public void testGetTile() throws Exception { Resource mockResult = mock(Resource.class); ArgumentCaptor<Map> argument = ArgumentCaptor.forClass(Map.class); Mockito.when(mockGWC.dispatchOwsRequest(argument.capture(), (Cookie[]) anyObject())) .thenReturn(mockResult); BufferedImage image = new BufferedImage(256, 256, BufferedImage.TYPE_INT_ARGB); RenderedImageMap fakeDispatchedMap = new RenderedImageMap(new WMSMapContent(), image, "image/png"); RenderedImageMapResponse fakeResponseEncoder = mock(RenderedImageMapResponse.class); MimeType mimeType = MimeType.createFromFormat("image/png"); when(mockGWC.getResponseEncoder(eq(mimeType), (RenderedImageMap) anyObject())).thenReturn( fakeResponseEncoder); StorageBroker storageBroker = mock(StorageBroker.class); when(storageBroker.get((TileObject) anyObject())).thenReturn(false); layerInfoTileLayer = new GeoServerTileLayer(layerInfo, defaults, gridSetBroker); MockHttpServletRequest servletReq = new MockHttpServletRequest(); HttpServletResponse servletResp = new MockHttpServletResponse(); long[] tileIndex = { 0, 0, 0 }; ConveyorTile tile = new ConveyorTile(storageBroker, layerInfoTileLayer.getName(), "EPSG:4326", tileIndex, mimeType, null, servletReq, servletResp); GeoServerTileLayer.WEB_MAP.set(fakeDispatchedMap); ConveyorTile returned = layerInfoTileLayer.getTile(tile); assertNotNull(returned); assertNotNull(returned.getBlob()); assertEquals(CacheResult.MISS, returned.getCacheResult()); assertEquals(200, returned.getStatus()); verify(storageBroker, atLeastOnce()).get((TileObject) anyObject()); verify(mockGWC, times(1)).getResponseEncoder(eq(mimeType), isA(RenderedImageMap.class)); }
.andReturn(true) .anyTimes(); expect(storageBroker.get((TileObject) anyObject())) .andAnswer( new IAnswer<Boolean>() {
StorageBroker sb = mock(StorageBroker.class); Mockito.when(sb.get(argThat(Matchers.instanceOf(TileObject.class)))) .thenAnswer( invoc -> {
expect(mockStorageBroker.get((TileObject) anyObject())).andReturn(false).anyTimes(); replay(mockStorageBroker);
expect(mockStorageBroker.get((TileObject) anyObject())).andReturn(false).anyTimes(); replay(mockStorageBroker);
expect(mockStorageBroker.get((TileObject) anyObject())).andReturn(false).anyTimes(); replay(mockStorageBroker);