PullThroughCache implements Map<K, V> { @Override public boolean containsKey(Object key) { return keyClass.isInstance(key); } PullThroughCache(Class<?> keyClass, Class<? extends PullThroughReferenceFactory> factoryClass);  PullThroughCache(Class<?> keyClass);  PullThroughCache(); boolean isProduced(K key); Date getLastProduce(K key); @Deprecated Date getLastProduceDate(K key); synchronized void invalidate(); synchronized void invalidate(K key); @Override void clear(); @Override boolean containsKey(Object key); @Override boolean containsValue(Object value); @Override Set<Map.Entry<K, V>> entrySet(); @Override @SuppressWarnings("unchecked") V get(Object key); @Override boolean isEmpty(); @Override Set<K> keySet(); @Override V put(K key, V value); @Override void putAll(Map<? extends K, ? extends V> map); @Override V remove(Object key); @Override int size(); @Override Collection<V> values(); @Override String toString();  }
@Test public void containsKey_true() { assertEquals(true, cache.containsKey("a")); }
@Ignore @Test public void containsKey_false() { assertEquals(false, cache.containsKey(new Date())); }