package org.infinispan.notifications.cachelistener;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.mockito.Matchers.isNull;
import org.hamcrest.Matcher;
import org.infinispan.Cache;
import org.infinispan.commands.FlagAffectedCommand;
import org.infinispan.commands.write.PutMapCommand;
import org.infinispan.configuration.cache.ConfigurationBuilder;
import org.infinispan.notifications.Listener;
import org.infinispan.notifications.cachelistener.annotation.CacheEntryVisited;
import org.infinispan.notifications.cachelistener.event.CacheEntryVisitedEvent;
import org.testng.annotations.Test;
/**
* @author Mircea Markus
* @since 5.1
*/
@Test(groups = "functional", testName = "notifications.cachelistener.SimpleCacheNotifierTest")
public class SimpleCacheNotifierTest extends CacheNotifierTest {
@Override
protected Cache<Object, Object> getCache() {
cm.defineConfiguration("simple", new ConfigurationBuilder().read(cm.getDefaultCacheConfiguration())
.clustering().simpleCache(true)
.jmxStatistics().available(false)
.build());
Cache cache = cm.getCache("simple");
// without any listeners the notifications are ignored
cache.addListener(new DummyListener());
return cache;
}
@Override
protected Matcher<FlagAffectedCommand> getFlagMatcher() {
return nullValue(FlagAffectedCommand.class);
}
@Override
protected PutMapCommand getExpectedPutMapCommand() {
return isNull();
}
@Listener
private class DummyListener {
@CacheEntryVisited
public void onVisited(CacheEntryVisitedEvent e) {}
}
}