BiCache { public synchronized void remove(K key, V value) { inverse.remove(value, key); cache.invalidate(key); } @Inject  BiCache(
      StatsProvider statsProvider,
      BiCacheSettings settings,
      final Clock clock); synchronized void put(K key, V value); synchronized Optional<V> get(K key); synchronized Set<K> getByValue(V value); synchronized void remove(K key, V value); synchronized Map<K, V> asMap();  }
@Test(expected = NullPointerException.class) public void testRemovalWithNullKey() { biCache.remove(null, 1); }