package org.infinispan.persistence.jdbc.stringbased;
import static org.infinispan.test.TestingUtil.marshalledEntry;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import org.infinispan.configuration.cache.ConfigurationBuilder;
import org.infinispan.container.entries.InternalCacheEntry;
import org.infinispan.persistence.jdbc.configuration.JdbcStringBasedStoreConfigurationBuilder;
import org.infinispan.persistence.spi.AdvancedCacheWriter;
import org.infinispan.test.fwk.TestInternalCacheEntryFactory;
import org.infinispan.util.concurrent.WithinThreadExecutor;
/**
* @author Ryan Emerson
*/
public class JdbcStringBasedStoreAltTwoWayMapperTest extends JdbcStringBasedStoreAltMapperTest {
@Override
protected JdbcStringBasedStoreConfigurationBuilder createJdbcConfig(ConfigurationBuilder builder) {
JdbcStringBasedStoreConfigurationBuilder storeBuilder = builder
.persistence()
.addStore(JdbcStringBasedStoreConfigurationBuilder.class)
.key2StringMapper(TwoWayPersonKey2StringMapper.class);
return storeBuilder;
}
public void testPurgeListenerIsNotified() throws Exception {
InternalCacheEntry first = TestInternalCacheEntryFactory.create(MIRCEA, "val", 1000);
cacheStore.write(marshalledEntry(first, marshaller));
assertRowCount(1);
Thread.sleep(1100);
AdvancedCacheWriter.PurgeListener purgeListener = mock(AdvancedCacheWriter.PurgeListener.class);
cacheStore.purge(new WithinThreadExecutor(), purgeListener);
verify(purgeListener).entryPurged(MIRCEA);
assertRowCount(0);
}
}