### Question:
MetaDataProviderPopulator { public MetaDataProvider populateProvider(Map<String, Serializable> row, MetaDataInfo metadataInfo) { MDILinkedMetaDataProvider provider = new MDILinkedMetaDataProvider(metadataInfo); for (String columnName : metadataInfo.getKeyNames()) { provider.setValue(columnName, row.get(columnName)); } return provider; }  MetaDataProvider populateProvider(Map<String, Serializable> row, MetaDataInfo metadataInfo);  }### Answer:
@Test public void testPopulateProvider() { DefaultMetaDataInfo metaInfo = new DefaultMetaDataInfo(); metaInfo.addKey(ourColumn1, String.class, this); metaInfo.addKey(ourColumn2, Integer.class, this); metaInfo.addKey(ourColumn3, Serializable.class, this); metaInfo.addKey(GeoPackageColumns.GEOMETRY_COLUMN, Geometry.class, this); Map<String, Serializable> row = New.map(); row.put(ourColumn1, "value2"); row.put(ourColumn2, 10d); row.put(ourColumn3, null); row.put(GeoPackageColumns.GEOMETRY_COLUMN, new GeometryFactory().createPoint(new Coordinate(10, 11))); MetaDataProviderPopulator populator = new MetaDataProviderPopulator(); MetaDataProvider provider = populator.populateProvider(row, metaInfo); assertEquals(row.get(ourColumn1), provider.getValue(ourColumn1)); assertEquals(row.get(ourColumn2), provider.getValue(ourColumn2)); assertEquals(row.get(ourColumn3), provider.getValue(ourColumn3)); assertEquals(row.get(GeoPackageColumns.GEOMETRY_COLUMN), provider.getValue(GeoPackageColumns.GEOMETRY_COLUMN)); }