ingo@1127: /* ingo@1127: * Copyright (c) 2010 by Intevation GmbH ingo@1127: * ingo@1127: * This program is free software under the LGPL (>=v2.1) ingo@1127: * Read the file LGPL.txt coming with the software for details ingo@1127: * or visit http://www.gnu.org/licenses/ if it does not exist. ingo@1127: */ ingo@1127: tim@130: package de.intevation.gnv.geobackend.sde.datasources; tim@130: sascha@886: import de.intevation.gnv.geobackend.base.connectionpool.ConnectionPool; sascha@886: import de.intevation.gnv.geobackend.base.connectionpool.ConnectionPoolFactory; sascha@886: sascha@886: import de.intevation.gnv.geobackend.base.connectionpool.exception.ConnectionException; sascha@886: sascha@886: import de.intevation.gnv.geobackend.sde.connectionpool.ArcSDEPoolableObjectFactory; sascha@886: tim@130: import java.io.FileInputStream; tim@130: import java.io.FileNotFoundException; tim@130: import java.io.IOException; tim@130: import java.io.InputStream; sascha@886: tim@130: import java.sql.Connection; sascha@886: import java.sql.ResultSet; tim@130: import java.sql.SQLException; tim@130: import java.sql.Statement; sascha@886: tim@130: import java.util.Properties; tim@130: tim@130: import junit.framework.TestCase; tim@130: tim@130: import org.apache.log4j.BasicConfigurator; tim@130: import org.apache.log4j.Logger; tim@130: tim@130: /** tim@130: * TestCase for the usage of the ArcSDEConnectionPool. sascha@887: * @author Tim Englich tim@130: * tim@130: */ tim@130: public class ArcSDEConnectionPoolTestCase extends TestCase { tim@130: tim@132: /** tim@130: * the logger, used to log exceptions and additonaly information tim@130: */ tim@130: private static Logger log = null; sascha@885: tim@130: static { tim@132: BasicConfigurator.configure(); tim@132: log = Logger.getLogger(ArcSDEPoolableObjectFactory.class); tim@130: } tim@132: /** sascha@885: * tim@132: */ tim@132: public ArcSDEConnectionPoolTestCase() { tim@132: super(); tim@132: } sascha@885: tim@132: /** sascha@885: * tim@132: * @param name tim@132: */ tim@132: public ArcSDEConnectionPoolTestCase(String name) { tim@132: super(name); tim@132: } sascha@885: tim@132: /** tim@132: * Test if the ArcSDEConnectionPool can be established tim@132: * and if a Request could be done. tim@132: */ tim@132: public void testArcSDEConnectionPool(){ tim@132: log.debug("ArcSDEConnectionPoolTestCase.testArcSDEConnectionPool"); tim@132: try { tim@132: InputStream inputStream = new FileInputStream("src/test/ressources/ArcSDEConnectionPoolTestCase.properties"); tim@132: Properties properties = new Properties(); tim@132: properties.load(inputStream); sascha@885: tim@132: ConnectionPoolFactory cpf = ConnectionPoolFactory.getInstance(); tim@132: cpf.initializeConnectionPool(properties); sascha@885: tim@132: assertTrue(cpf.isInitialized()); tim@132: log.debug("ConnectionPoolFactory ist initialisiert."); sascha@885: tim@132: ConnectionPool cp = cpf.getConnectionPool(); tim@132: assertNotNull(cp); sascha@885: log.debug("ConnectionPool ist initialisiert."); sascha@885: sascha@885: Connection connection = null; tim@132: try{ tim@132: try { tim@132: connection = cp.getConnection("N/N"); tim@132: assertNotNull(connection); tim@132: log.debug("Connection ist initialisiert."); tim@132: } catch (ConnectionException e) { tim@132: log.error("Es traten Probleme bei der Verbinung zur Datenbank auf."); tim@132: fail(); tim@132: } sascha@885: sascha@885: tim@132: try { tim@132: Statement stmt = connection.createStatement(); tim@132: ResultSet rs = stmt.executeQuery("Select MESHID, NAME from MEDIAN.MESH"); sascha@885: tim@132: while (rs.next()){ tim@132: log.debug(rs.getInt(1)); tim@132: log.debug(rs.getString(2)); sascha@885: tim@132: log.debug(rs.getInt("MESHID")); tim@132: log.debug(rs.getString("NAME")); tim@132: } sascha@885: tim@132: } catch (SQLException e) { tim@132: log.error(e,e); tim@132: } tim@132: }finally{ tim@132: if (connection != null){ tim@132: try { tim@132: connection.close(); tim@130: } catch (SQLException e) { tim@132: log.error(e,e); tim@132: fail(); tim@130: } tim@132: } tim@132: } tim@132: } catch (FileNotFoundException e) { tim@132: log.error(e,e); tim@132: fail(); tim@132: } catch (IOException e) { tim@132: log.error(e,e); tim@132: fail(); tim@132: } tim@132: } tim@130: }