### Question:
ExtensibleMetadataPropertiesSource implements ExtensibleMetaDataSource { @Override public ExtensibleMetaDataMapping generateExtensibleMetaDataMapping() throws JargonException { log.debug("cloning the properties and building an ExtensibleMetaDataMapping"); if (extensibleMetaDataProperties == null) { throw new JargonException("the properties I want to use to build the metadata mapping are null"); } ExtensibleMetaDataMapping mapping = ExtensibleMetaDataMapping.instance(extensibleMetaDataProperties); return mapping; } ExtensibleMetadataPropertiesSource();  ExtensibleMetadataPropertiesSource(final String propertiesFileName); @Override ExtensibleMetaDataMapping generateExtensibleMetaDataMapping();  }### Answer:
@Test public void testCreateInstanceFromProperties() throws Exception { ExtensibleMetaDataSource source = new ExtensibleMetadataPropertiesSource(); ExtensibleMetaDataMapping mapping = source.generateExtensibleMetaDataMapping(); Assert.assertNotNull(mapping); }
@Test(expected = JargonException.class) public void testCreateInstanceFromMissingTestProperties() throws Exception { ExtensibleMetaDataSource source = new ExtensibleMetadataPropertiesSource("i_dont_exist.properties"); source.generateExtensibleMetaDataMapping(); }
@Test public void testCreateInstanceFromTestPropertiesAndVerifyMapping() throws Exception { ExtensibleMetaDataSource source = new ExtensibleMetadataPropertiesSource("test_extended_icat_data.properties"); ExtensibleMetaDataMapping mapping = source.generateExtensibleMetaDataMapping(); String colName1 = mapping.getColumnNameFromIndex("10001"); Assert.assertEquals("COL_TEST_ID", colName1); }