package org.infinispan.persistence.jpa;
import java.io.IOException;
import org.infinispan.configuration.cache.ConfigurationBuilder;
import org.infinispan.persistence.BaseStoreTest;
import org.infinispan.persistence.jpa.configuration.JpaStoreConfigurationBuilder;
import org.infinispan.persistence.jpa.entity.KeyValueEntity;
import org.infinispan.persistence.jpa.impl.EntityManagerFactoryRegistry;
import org.infinispan.persistence.spi.AdvancedLoadWriteStore;
import org.infinispan.persistence.spi.InitializationContext;
import org.infinispan.persistence.spi.PersistenceException;
import org.infinispan.test.fwk.TestCacheManagerFactory;
import org.testng.annotations.Test;
/**
* @author Radim Vansa <rvansa@redhat.com>
*/
@Test(groups = "unit", testName = "persistence.JpaStoreTest")
public class JpaStoreTest extends BaseStoreTest {
@Override
protected AdvancedLoadWriteStore createStore() throws Exception {
ConfigurationBuilder builder = TestCacheManagerFactory.getDefaultCacheConfiguration(false);
builder.persistence()
.addStore(JpaStoreConfigurationBuilder.class)
.persistenceUnitName(getPersistenceUnitName())
.entityClass(KeyValueEntity.class)
.storeMetadata(storeMetadata())
.create();
InitializationContext context = createContext(builder.build());
context.getCache().getAdvancedCache().getComponentRegistry().getGlobalComponentRegistry()
.registerComponent(new EntityManagerFactoryRegistry(), EntityManagerFactoryRegistry.class);
JpaStore store = new JpaStore();
store.init(context);
return store;
}
protected boolean storeMetadata() {
return true;
}
protected String getPersistenceUnitName() {
return "org.infinispan.persistence.jpa";
}
@Override
public Object wrap(String key, String value) {
return new KeyValueEntity(key, value);
}
@Override
public String unwrap(Object wrapper) {
return ((KeyValueEntity) wrapper).getValue();
}
@Test(enabled = false)
@Override
public void testLoadAndStoreBytesValues() throws PersistenceException, IOException, InterruptedException {
super.testLoadAndStoreBytesValues();
}
}