/* * JBoss, Home of Professional Open Source. * See the COPYRIGHT.txt file distributed with this work for information * regarding copyright ownership. Some portions may be licensed * to Red Hat, Inc. under one or more contributor license agreements. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA. */ package org.teiid.eclipselink.platform; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.DriverManager; import java.sql.SQLException; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import javax.resource.ResourceException; import javax.resource.cci.ConnectionFactory; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.teiid.core.util.UnitTestUtil; import org.teiid.deployers.VirtualDatabaseException; import org.teiid.dqp.internal.datamgr.ConnectorManagerRepository.ConnectorManagerException; import org.teiid.resource.adapter.file.FileManagedConnectionFactory; import org.teiid.runtime.EmbeddedConfiguration; import org.teiid.runtime.EmbeddedServer; import org.teiid.runtime.EmbeddedServer.ConnectionFactoryProvider; import org.teiid.translator.TranslatorException; import org.teiid.translator.file.FileExecutionFactory; @SuppressWarnings("nls") public class TestTeiidPlatform { static EmbeddedServer server; static EntityManagerFactory factory; @BeforeClass public static void init() throws VirtualDatabaseException, ConnectorManagerException, TranslatorException, FileNotFoundException, IOException, ResourceException, SQLException { server = new EmbeddedServer(); FileExecutionFactory executionFactory = new FileExecutionFactory(); server.addTranslator("file", executionFactory); FileManagedConnectionFactory fileManagedconnectionFactory = new FileManagedConnectionFactory(); fileManagedconnectionFactory.setParentDirectory(UnitTestUtil.getTestDataPath()+File.separator+"file"); ConnectionFactory connectionFactory = fileManagedconnectionFactory.createConnectionFactory(); ConnectionFactoryProvider<ConnectionFactory> connectionFactoryProvider = new EmbeddedServer.SimpleConnectionFactoryProvider<ConnectionFactory>(connectionFactory); server.addConnectionFactoryProvider("java:/marketdata-file", connectionFactoryProvider); EmbeddedConfiguration config = new EmbeddedConfiguration(); server.start(config); DriverManager.registerDriver(server.getDriver()); server.deployVDB(new FileInputStream(UnitTestUtil.getTestDataFile("vdb"+File.separator+"marketdata-vdb.xml"))); factory = Persistence.createEntityManagerFactory("org.teiid.eclipselink.test"); } @Test public void testInit() throws Exception { assertNotNull(factory); EntityManager em = factory.createEntityManager(); assertNotNull(em); em.close(); } @Test public void testJPQLQuery() { EntityManager em = factory.createEntityManager(); List list = em.createQuery("SELECT m FROM Marketdata m").getResultList(); assertNotNull(list); assertEquals(10, list.size()); em.close(); } @AfterClass public static void destory() { factory.close(); try { DriverManager.deregisterDriver(server.getDriver()); } catch (SQLException e) { } server.stop(); } }