package org.teiid.embedded.samples.infinispan;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.io.File;
import java.io.FileInputStream;
import javax.resource.ResourceException;
import org.infinispan.Cache;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import org.teiid.embedded.samples.TestInfnispanBase;
import org.teiid.embedded.samples.infinispan.model.Order;
import org.teiid.embedded.samples.util.JDBCUtil;
import org.teiid.resource.adapter.infinispan.InfinispanManagedConnectionFactory;
import org.teiid.translator.TranslatorException;
import org.teiid.translator.object.ObjectConnection;
import org.teiid.translator.object.ObjectExecutionFactory;
@Ignore()
public class TestInfinispanLocalCache extends TestInfnispanBase {
static final String TEST_CACHE_NAME = "local-quickstart-cache";
@BeforeClass
public static void init() throws Exception {
init("infinispan-local", new ObjectExecutionFactory());
InfinispanManagedConnectionFactory managedConnectionFactory = new InfinispanManagedConnectionFactory();
managedConnectionFactory.setConfigurationFileNameForLocalCache("src/test/resources/infinispan-config-local.xml");
managedConnectionFactory.setCacheTypeMap(TEST_CACHE_NAME + ":" + Order.class.getName());
server.addConnectionFactory("java:/infinispanTest", managedConnectionFactory.createConnectionFactory());
start(false);
loadCaches(managedConnectionFactory);
server.deployVDB(new FileInputStream(new File("vdb/infinispancache-vdb.xml")));
conn = server.getDriver().connect("jdbc:teiid:orders", null);
}
@Test
public void testQuery() throws Exception {
assertNotNull(conn);
assertEquals(10, JDBCUtil.countResults(conn, "select * from OrdersView"));
assertEquals(7, JDBCUtil.countResults(conn, "select * from OrdersView where OrderNum > 3"));
}
protected static void loadCaches(InfinispanManagedConnectionFactory managedConnectionFactory) throws TranslatorException, ResourceException {
ObjectConnection conn = (ObjectConnection) managedConnectionFactory.createConnectionFactory().getConnection();
Cache<String, Order> cache = conn.getCacheContainer().getCache(TEST_CACHE_NAME);
cache.putAll(loadCache());
}
}