### Question:
MultiFeatureTypeBuilder implements Function<ObjectInfo<RevFeature>, Feature> { FeatureType get(ObjectId metadataId) { FeatureType featureType = cache.computeIfAbsent(metadataId, this::load); return featureType; } MultiFeatureTypeBuilder(@NonNull ObjectStore odb); @Override Feature apply(ObjectInfo<RevFeature> info);  }### Answer:
@Test public void testGet() throws Exception { ObjectId meta1 = getOID(1); ObjectId meta2 = getOID(2); FeatureType fType1 = FeatureTypes.createType("location", "the_geom:Point:srid=4326", "name:String", "name2:String"); RevFeatureType revft1 = RevFeatureType.builder().id(getOID(1)).type(fType1).build(); FeatureType fType2 = FeatureTypes.createType("location", "the_geom:Point:srid=4326", "name3:String", "name4:String"); RevFeatureType revft2 = RevFeatureType.builder().id(getOID(1)).type(fType2).build(); ObjectDatabase odb = mock(ObjectDatabase.class); when(odb.getFeatureType(meta1)).thenReturn(revft1); when(odb.getFeatureType(meta2)).thenReturn(revft2); MultiFeatureTypeBuilder builder = new MultiFeatureTypeBuilder(odb); FeatureType ft1 = builder.get(meta1); FeatureType ft2 = builder.get(meta2); Assert.isTrue(ft1 == builder.get(meta1)); Assert.isTrue(ft2 == builder.get(meta2)); Assert.isTrue(ft1.equals(revft1.type())); Assert.isTrue(ft2.equals(revft2.type())); }