### Question:
ExtraColumnsMetaDataProvider implements MetaDataProvider { @Override public boolean hasKey(String key) { return myExtraColumns.containsKey(key) || myOriginal.hasKey(key); } protected  ExtraColumnsMetaDataProvider(ExtraColumnsMetaDataProvider source);  ExtraColumnsMetaDataProvider(MetaDataProvider original, Map<String, Object> extraColumns); @Override List<String> getKeys(); @Override Object getValue(String key); @Override List<Object> getValues(); @Override boolean hasKey(String key); @Override boolean keysMutable(); @Override void removeKey(String key); @Override boolean setValue(String key, Serializable value); @Override boolean valuesMutable(); Map<String, Object> getExtraColumns(); MetaDataProvider getOriginal(); @Override MetaDataProvider createCopy(DataTypeInfo newDatatype);  }### Answer:
@Test public void testHasKey() { EasyMockSupport support = new EasyMockSupport(); MetaDataProvider original = createProvider(support); Map<String, Object> extras = createExtraColumns(); support.replayAll(); ExtraColumnsMetaDataProvider provider = new ExtraColumnsMetaDataProvider(original, extras); assertTrue(provider.hasKey(ourOriginalColumns[0])); assertTrue(provider.hasKey(ourOriginalColumns[1])); assertTrue(provider.hasKey("col3")); assertTrue(provider.hasKey("col4")); assertTrue(provider.hasKey(ourExtraColumns[2])); assertFalse(provider.hasKey("col6")); support.verifyAll(); }