### Question:
UnmodifiableCache implements Cache<K, V> { @Override public UnmodifiableCache<K, V> set(K key, V value) { illegalAccess(true, "You must not try to modify an UnmodifiableCache."); return null; } UnmodifiableCache(Cache<K, V> cache); @Override V get(K key); @Override UnmodifiableCache<K, V> set(K key, V value);  }### Answer:
@Test (expected = Throwable.class) public void testUnmodifiableIsUnmodifiable() { final ReferenceCache<Object, Object> notNullCache = gimmeReferenceCacheOfOne(); final UnmodifiableCache<Object, Object> unmodifiable = unmodifiable(notNullCache); unmodifiable.set("something", "here"); }