### Question:
FootprintGeometryBuilder implements GeometryBuilder { @Override public Pair<List<Geometry>, List<Geometry>> buildGeometries(PlatformMetadata model, DataTypeInfo uavDataType, DataTypeInfo videoLayer) { PolygonGeometry.Builder<GeographicPosition> builder = new PolygonGeometry.Builder<>(); builder.setVertices(model.getFootprint().getVertices()); OrderParticipantKey orderKey = uavDataType.getOrderKey(); int zorder = myOrderManager.getOrderManager(orderKey).getOrder(orderKey); Constraints constraints = new MutableConstraints( TimeConstraint.getMostRecentTimeConstraint(uavDataType.getTypeKey(), model.getTime().getTime())); PolygonRenderProperties renderProperties = new DefaultPolygonRenderProperties(zorder, true, true); renderProperties.setColor(uavDataType.getBasicVisualizationInfo().getTypeColor()); renderProperties.setHidden(!uavDataType.isVisible()); setOpacity(renderProperties, uavDataType.getBasicVisualizationInfo().getTypeOpacity()); return new Pair<>(New.list(new PolygonGeometry(builder, renderProperties, constraints)), New.list()); } FootprintGeometryBuilder(OrderManagerRegistry orderRegistry); @Override Pair<List<Geometry>, List<Geometry>> buildGeometries(PlatformMetadata model, DataTypeInfo uavDataType,
            DataTypeInfo videoLayer); @Override boolean cachePublishedGeometries();  }### Answer:
@Test public void test() { EasyMockSupport support = new EasyMockSupport(); OrderParticipantKey key = createKey(support); OrderManagerRegistry orderRegistry = createOrderRegistry(support, key); DataTypeInfo dataType = createDataType(support, key, true); PlatformMetadata metadata = createMetadata(); support.replayAll(); FootprintGeometryBuilder builder = new FootprintGeometryBuilder(orderRegistry); List<Geometry> geometries = builder.buildGeometries(metadata, dataType, null).getFirstObject(); assertEquals(1, geometries.size()); PolygonGeometry geometry = (PolygonGeometry)geometries.get(0); assertEquals(metadata.getFootprint().getVertices(), geometry.getVertices()); PolygonRenderProperties renderProps = geometry.getRenderProperties(); assertEquals(ourZOrder, renderProps.getZOrder()); assertTrue(renderProps.isPickable()); assertTrue(renderProps.isDrawable()); assertEquals(ColorUtilities.opacitizeColor(ourColor, ourOpacity / 255f), renderProps.getColor()); assertFalse(renderProps.isHidden()); TimeConstraint constraint = geometry.getConstraints().getTimeConstraint(); assertEquals(ourTypeKey, constraint.getKey()); assertEquals(TimeSpan.get(metadata.getTime()), constraint.getTimeSpan()); support.verifyAll(); }