### Question:
CombinedProperties implements Map<String, Object> { @Override public final boolean containsKey(Object key) { final ComputedPropertyParameter computedPropertyParameter = new ComputedPropertyParameter((String) key); boolean result = false; final ComputedProperty computedProperty = computedProperties.get(computedPropertyParameter.getName()); if (computedProperty != null) { if (cachedValues.containsKey(computedPropertyParameter.getCacheId()) || computedProperty.accepts(asset, request, computedPropertyParameter.getName())) { result = true; } } if (!result) { result = assetProperties.get(computedPropertyParameter.getName()) != null; } if (!result) { result = metaProperties.get(computedPropertyParameter.getName()) != null; } return result; } CombinedProperties(final List<ComputedProperty> computedProperties,
                              final SlingHttpServletRequest request,
                              final Asset asset); @Override final int size(); @Override final boolean isEmpty(); @Override final boolean containsKey(Object key); @Override final boolean containsValue(Object value); @Override final Object get(Object key); @Override final Object put(String key, Object value); @Override Object remove(Object key); @Override final void putAll(Map<? extends String, ?> m); @Override final void clear(); @Override Set<String> keySet(); @Override final Collection<Object> values(); @Override final Set<Entry<String, Object>> entrySet(); @Override final boolean equals(Object o); @Override final int hashCode();  }### Answer:
@Test public void containsKey_WithoutParameters() { final boolean actual = combinedProperties.containsKey(TitleImpl.NAME); assertTrue(actual); }
@Test public void containsKey_WithParameters() { final boolean actual = combinedProperties.containsKey(FileNameImpl.NAME + "?a=b&c=d"); assertTrue(actual); }
@Test public void containsKey_NoMatch() { final boolean actual = combinedProperties.containsKey("unknown"); assertFalse(actual); }