ObservableMap implements Mache<K, V> { @Override public V get(K key) { return delegate.get(key); } ObservableMap(MQFactory<K> communicationFactory, Mache<K, V> delegate, UuidUtils uuidUtils); void registerListener(MapEventListener<K> listener); @Override String getName(); @Override UUID getId(); @Override V get(K key); @Override void put(K key, V value); @Override void remove(K key); @Override void invalidateAll(); @Override void invalidate(K key); @Override void close(); @Override MacheLoader<K, V> getCacheLoader();  }
@Test public void testGet() throws Exception { ObservableMap<String, String> observable = new ObservableMap<>(mqFactory, cache, uuidUtils); observable.registerListener(event -> fired++); observable.put("a", "b"); assertEquals(1, fired); }