tim@130: package de.intevation.gnv.geobackend.sde.datasources; tim@130: tim@130: import java.io.FileInputStream; tim@130: import java.io.FileNotFoundException; tim@130: import java.io.IOException; tim@130: import java.io.InputStream; tim@130: import java.sql.Connection; tim@130: import java.sql.SQLException; tim@130: import java.sql.Statement; tim@130: import java.util.Properties; tim@130: import java.sql.ResultSet; 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: import de.intevation.gnv.geobackend.base.connectionpool.ConnectionPool; tim@130: import de.intevation.gnv.geobackend.base.connectionpool.ConnectionPoolFactory; tim@130: import de.intevation.gnv.geobackend.base.connectionpool.exception.ConnectionException; tim@130: import de.intevation.gnv.geobackend.sde.connectionpool.ArcSDEPoolableObjectFactory; tim@130: tim@130: /** tim@130: * TestCase for the usage of the ArcSDEConnectionPool. tim@130: * @author Tim Englich tim@130: * tim@130: */ tim@130: public class ArcSDEConnectionPoolTestCase extends TestCase { tim@130: tim@130: /** tim@130: * the logger, used to log exceptions and additonaly information tim@130: */ tim@130: private static Logger log = null; tim@130: tim@130: static { tim@130: BasicConfigurator.configure(); tim@130: log = Logger.getLogger(ArcSDEPoolableObjectFactory.class); tim@130: } tim@130: tim@130: tim@130: tim@130: /** tim@130: * tim@130: */ tim@130: public ArcSDEConnectionPoolTestCase() { tim@130: super(); tim@130: } tim@130: tim@130: /** tim@130: * tim@130: * @param name tim@130: */ tim@130: public ArcSDEConnectionPoolTestCase(String name) { tim@130: super(name); tim@130: } tim@130: tim@130: public void testArcSDEConnectionPool(){ tim@130: log.debug("ArcSDEConnectionPoolTestCase.testArcSDEConnectionPool"); tim@130: try { tim@130: InputStream inputStream = new FileInputStream("src/test/ressources/ArcSDEConnectionPoolTestCase.properties"); tim@130: Properties properties = new Properties(); tim@130: properties.load(inputStream); tim@130: tim@130: ConnectionPoolFactory cpf = ConnectionPoolFactory.getInstance(); tim@130: cpf.initializeConnectionPool(properties); tim@130: tim@130: assertTrue(cpf.isInitialized()); tim@130: log.debug("ConnectionPoolFactory ist initialisiert."); tim@130: tim@130: ConnectionPool cp = cpf.getConnectionPool(); tim@130: assertNotNull(cp); tim@130: log.debug("ConnectionPool ist initialisiert."); tim@130: tim@130: Connection connection = null; tim@130: try{ tim@130: try { tim@130: connection = cp.getConnection("N/N"); tim@130: assertNotNull(connection); tim@130: log.debug("Connection ist initialisiert."); tim@130: } catch (ConnectionException e) { tim@130: log.error("Es traten Probleme bei der Verbinung zur Datenbank auf."); tim@130: fail(); tim@130: } tim@130: tim@130: tim@130: try { tim@130: Statement stmt = connection.createStatement(); tim@130: ResultSet rs = stmt.executeQuery("Select MESHID, NAME from MEDIAN.MESH"); tim@130: tim@130: while (rs.next()){ tim@130: log.debug(rs.getInt(1)); tim@130: log.debug(rs.getString(2)); tim@130: tim@130: log.debug(rs.getInt("MESHID")); tim@130: log.debug(rs.getString("NAME")); tim@130: } tim@130: tim@130: } catch (SQLException e) { tim@130: log.error(e,e); tim@130: } tim@130: }finally{ tim@130: if (connection != null){ tim@130: try { tim@130: connection.close(); tim@130: } catch (SQLException e) { tim@130: log.error(e,e); tim@130: fail(); tim@130: } tim@130: } tim@130: } tim@130: tim@130: tim@130: tim@130: } catch (FileNotFoundException e) { tim@130: log.error(e,e); tim@130: fail(); tim@130: } catch (IOException e) { tim@130: log.error(e,e); tim@130: fail(); tim@130: } tim@130: } tim@130: tim@130: }