BloomFilterManagerImpl implements BloomFilterManager<T, C>,
        Listenable<BloomFilterManagerListener<? super T, C>> { @Override public boolean removeListener(BloomFilterManagerListener<? super T, C> listener) { return listeners.remove(listener); } BloomFilterManagerImpl(BloomFilterFactory<? extends T, ? super C> factory); @Override CreateFilterResult<T> createFilter(String name, C config, boolean overwrite); @Override void addFilters(Iterable<FilterRecord<? extends T>> filters); @Nullable @Override T getFilter(String name); @Override T ensureGetValidFilter(String name); @Override List<String> getAllFilterNames(); @Override int size(); @Override void remove(String name); @Override void remove(String name, T filter); @Override Iterator<FilterRecord<T>> iterator(); @Override void addListener(BloomFilterManagerListener<? super T, C> listener); @Override boolean removeListener(BloomFilterManagerListener<? super T, C> listener);  }
@Test public void removeListener() { final TestingListener listener = new TestingListener(); manager.addListener(listener); manager.removeListener(listener); final ExpirableBloomFilterConfig config = new ExpirableBloomFilterConfig(); manager.createFilter(testingFilterName, config); List<FilterEvent> events = listener.getReceivedEvents(); assertThat(events.size()).isZero(); }