### Question:
ImageGeometryBuilder implements GeometryBuilder { public List<Geometry> close() { return New.list(myGeometries.values()); } ImageGeometryBuilder(OrderManagerRegistry orderRegistry); @Override Pair<List<Geometry>, List<Geometry>> buildGeometries(PlatformMetadata model, DataTypeInfo uavDataType,
            DataTypeInfo videoLayer); @Override boolean cachePublishedGeometries(); List<Geometry> close();  }### Answer:
@Test public void testClose() throws IOException { EasyMockSupport support = new EasyMockSupport(); DataTypeInfo uavDataType = support.createMock(DataTypeInfo.class); OrderParticipantKey key = support.createMock(OrderParticipantKey.class); OrderManagerRegistry orderRegistry = createOrderRegistry(support, key); DataTypeInfo videoLayer = createVideoLayer(support, key); PlatformMetadata model = createTestData(1).get(0); support.replayAll(); ImageGeometryBuilder builder = new ImageGeometryBuilder(orderRegistry); Pair<List<Geometry>, List<Geometry>> addsAndRemoves = builder.buildGeometries(model, uavDataType, videoLayer); assertTrue(addsAndRemoves.getSecondObject().isEmpty()); List<Geometry> adds = addsAndRemoves.getFirstObject(); assertEquals(1, adds.size()); TileGeometry geometry = (TileGeometry)adds.get(0); assertNull(geometry.getSplitJoinRequestProvider()); assertNull(geometry.getParent()); assertTrue(geometry.isRapidUpdate()); assertEquals(model.getFootprint(), geometry.getBounds()); TileRenderProperties props = geometry.getRenderProperties(); assertEquals(ourZOrder, props.getZOrder()); assertTrue(props.isDrawable()); assertFalse(props.isPickable()); assertEquals(ourOpacity, props.getOpacity(), 0f); ImageManager imageManager = geometry.getImageManager(); assertDirtyRegion(imageManager); assertNotNull(((ImageIOImage)imageManager.getCachedImageData().getImageMap().values().iterator().next()).getAWTImage()); List<Geometry> geoms = builder.close(); assertEquals(1, geoms.size()); assertEquals(geometry, geoms.get(0)); support.verifyAll(); }