package org.infinispan.persistence.rest;
import org.infinispan.commons.api.BasicCacheContainer;
import org.infinispan.configuration.cache.PersistenceConfigurationBuilder;
import org.infinispan.manager.EmbeddedCacheManager;
import org.infinispan.persistence.BaseStoreFunctionalTest;
import org.infinispan.persistence.rest.configuration.RestStoreConfigurationBuilder;
import org.infinispan.rest.EmbeddedRestServer;
import org.infinispan.rest.RestTestingUtil;
import org.infinispan.test.TestingUtil;
import org.infinispan.test.fwk.TestCacheManagerFactory;
import org.testng.annotations.Test;
/**
* @author Tristan Tarrant
* @since 6.0
*/
@Test(testName = "persistence.remote.RestCacheStoreFunctionalTest", groups = "functional")
public class RestCacheStoreFunctionalTest extends BaseStoreFunctionalTest {
private EmbeddedCacheManager localCacheManager;
private EmbeddedRestServer restServer;
@Override
protected PersistenceConfigurationBuilder createCacheStoreConfig(PersistenceConfigurationBuilder loaders, boolean preload) {
localCacheManager = TestCacheManagerFactory.createCacheManager();
restServer = RestTestingUtil.startRestServer(localCacheManager);
loaders.addStore(RestStoreConfigurationBuilder.class)
.host("localhost")
.port(restServer.getPort())
.path("/rest/"+BasicCacheContainer.DEFAULT_CACHE_NAME)
.preload(preload);
return loaders;
}
@Override
protected void teardown() {
super.teardown();
if (restServer != null) {
RestTestingUtil.killServers(restServer);
}
if (localCacheManager != null) {
TestingUtil.killCacheManagers(localCacheManager);
}
}
@Override
public void testPreloadAndExpiry() {
// No-op, since remote cache store does not support preload
}
@Override
public void testPreloadStoredAsBinary() {
// No-op, remote cache store does not support store as binary
// since Hot Rod already stores them as binary
}
@Override
public void testTwoCachesSameCacheStore() {
//not applicable
}
}