/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2002-2008, Open Source Geospatial Foundation (OSGeo)
*
* 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;
* version 2.1 of the License.
*
* 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.
*/
package org.geotools.data.h2;
import java.util.Collections;
import java.util.HashMap;
import junit.framework.TestCase;
import org.geotools.data.DataStore;
import org.geotools.jdbc.JDBCDataStore;
import org.geotools.jdbc.JDBCDataStoreFactory;
import org.h2.tools.Server;
public class H2DataStoreFactoryTest extends TestCase {
H2DataStoreFactory factory;
HashMap params;
protected void setUp() throws Exception {
factory = new H2DataStoreFactory();
params = new HashMap();
params.put(JDBCDataStoreFactory.NAMESPACE.key, "http://www.geotools.org/test");
params.put(JDBCDataStoreFactory.DATABASE.key, "geotools");
params.put(JDBCDataStoreFactory.DBTYPE.key, "h2");
}
public void testCanProcess() throws Exception {
assertFalse(factory.canProcess(Collections.EMPTY_MAP));
assertTrue(factory.canProcess(params));
}
public void testCreateDataStore() throws Exception {
JDBCDataStore ds = factory.createDataStore( params );
assertNotNull( ds );
}
public void testTCP() throws Exception {
HashMap params = new HashMap();
params.put(H2DataStoreFactory.HOST.key, "localhost");
params.put(H2DataStoreFactory.DATABASE.key, "geotools");
DataStore ds = factory.createDataStore(params);
try {
ds.getTypeNames();
fail("Should not have made a connection.");
}
catch(Exception ok) {}
Server server = Server.createTcpServer(new String[]{"-baseDir", "target"});
server.start();
try {
while(!server.isRunning(false)) {
Thread.sleep(100);
}
ds = factory.createDataStore(params);
ds.getTypeNames();
}
finally {
server.shutdown();
}
}
}