tim@132: /** tim@132: * tim@132: */ tim@132: package de.intevation.gnv.geobackend.base.query; tim@132: tim@132: import java.io.FileInputStream; tim@132: import java.io.InputStream; tim@132: import java.util.Collection; tim@132: import java.util.Iterator; tim@132: import java.util.Properties; tim@132: tim@132: import org.apache.log4j.BasicConfigurator; tim@132: import org.apache.log4j.Logger; tim@132: tim@132: import de.intevation.gnv.geobackend.base.Result; tim@132: import de.intevation.gnv.geobackend.base.ResultDescriptor; tim@132: import de.intevation.gnv.geobackend.base.connectionpool.ConnectionPoolFactory; tim@132: import de.intevation.gnv.geobackend.base.query.container.QueryContainerFactory; tim@132: import de.intevation.gnv.geobackend.base.query.exception.QueryException; tim@132: import junit.framework.TestCase; tim@132: tim@132: /** tim@132: * TestCase for the QueryExecutor interface tim@132: * @author Tim Englich tim@132: * tim@132: */ tim@132: public class QueryExecutorTestCase extends TestCase { tim@132: tim@132: tim@132: /** tim@132: * the logger, used to log exceptions and additonaly information tim@132: */ tim@132: private static Logger log = null; tim@132: tim@132: static{ tim@132: BasicConfigurator.configure(); tim@132: log = Logger.getLogger(QueryExecutorTestCase.class); tim@132: } tim@132: tim@132: /** tim@132: * Constructor tim@132: * @param name tim@132: */ tim@132: public QueryExecutorTestCase(String name) { tim@132: super(name); tim@132: } tim@132: tim@132: /** tim@132: * Tests if the Databaseconnection can be established and tim@132: * Data could be read from the Database tim@132: */ tim@132: public void testQueryExecutor(){ tim@132: tim@132: try { tim@132: QueryExecutor queryExecutor = QueryExecutorFactory.getInstance().getQueryExecutor(); tim@132: Collection results = queryExecutor.executeQuery("mesh", null); tim@132: if (results == null || results.size() == 0){ tim@132: log.error("Keine Daten erhalten"); tim@132: fail(); tim@132: }else { tim@132: log.debug("Datem erhalten"); tim@132: Iterator it = results.iterator(); tim@132: while (it.hasNext()){ tim@132: Result tmpResult = it.next(); tim@132: ResultDescriptor resultDescriptor = tmpResult.getResultDescriptor(); tim@132: int columns = resultDescriptor.getColumnCount(); tim@132: for (int i = 0; i < columns; i++){ tim@132: String columnName = resultDescriptor.getColumnName(i); tim@132: Object value = tmpResult.getObject(columnName); tim@132: log.debug(columnName + " ==> "+value.toString()); tim@132: } tim@132: } tim@132: } tim@132: } catch (QueryException e) { tim@132: log.error(e,e); tim@132: fail(); tim@132: } tim@132: } tim@132: tim@132: tim@132: /** tim@132: * @see junit.framework.TestCase#setUp() tim@132: */ tim@132: @Override tim@132: protected void setUp() throws Exception { tim@132: tim@132: super.setUp(); tim@132: InputStream inputStream = new FileInputStream("src/test/ressources/ArcSDEConnectionPoolTestCase.properties"); tim@132: Properties properties = new Properties(); tim@132: properties.load(inputStream); tim@132: tim@132: ConnectionPoolFactory cpf = ConnectionPoolFactory.getInstance(); tim@132: cpf.initializeConnectionPool(properties); tim@132: tim@132: tim@132: inputStream = new FileInputStream("src/test/ressources/QueryExecutorTestCase.properties"); tim@132: properties = new Properties(); tim@132: properties.load(inputStream); tim@132: tim@132: QueryContainerFactory qcf = QueryContainerFactory.getInstance(); tim@132: qcf.initializeQueryContainer(properties); tim@132: } tim@132: tim@132: }