package org.infinispan.persistence; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.persistence.dummy.DummyInMemoryStoreConfigurationBuilder; import org.infinispan.test.SingleCacheManagerTest; import org.infinispan.test.fwk.TestCacheManagerFactory; import org.infinispan.test.fwk.TestResourceTracker; import org.testng.annotations.Test; /** * FlushingAsyncStoreTest. * * @author Sanne Grinovero */ @Test(groups = "functional", testName = "persistence.FlushingAsyncStoreTest", singleThreaded = true) public class FlushingAsyncStoreTest extends SingleCacheManagerTest { public static final String CACHE_NAME = "AsyncStoreInMemory"; /** to assert the test methods are run in proper order **/ private boolean storeWasRun = false; public FlushingAsyncStoreTest() { cleanup = CleanupPhase.AFTER_METHOD; } @Override protected EmbeddedCacheManager createCacheManager() throws Exception { ConfigurationBuilder config = getDefaultStandaloneCacheConfig(false); config .persistence() .addStore(DummyInMemoryStoreConfigurationBuilder.class) .storeName(this.getClass().getName()) .slow(true) .async().enable().threadPoolSize(1) .build(); EmbeddedCacheManager cacheManager = TestCacheManagerFactory.createCacheManager(config); cacheManager.defineConfiguration(CACHE_NAME, config.build()); return cacheManager; } @Test(timeOut = 10000) public void writeOnStorage() { TestResourceTracker.testThreadStarted(this); cache = cacheManager.getCache(CACHE_NAME); cache.put("key1", "value"); cache.stop(); storeWasRun = true; } @Test(dependsOnMethods = "writeOnStorage") public void verifyStorageContent() { assert storeWasRun; cache = cacheManager.getCache(CACHE_NAME); assert "value".equals(cache.get("key1")); } }