/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.spatial.testing.dialects.h2geodb;
import java.io.IOException;
import java.sql.SQLException;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.spatial.testing.AbstractExpectationsFactory;
import org.hibernate.spatial.testing.DataSourceUtils;
import org.hibernate.spatial.testing.GeometryEquality;
import org.hibernate.spatial.testing.SQLExpressionTemplate;
import org.hibernate.spatial.testing.TestData;
import org.hibernate.spatial.testing.TestSupport;
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
/**
* @author Karel Maesen, Geovise BVBA
* creation-date: Oct 2, 2010
*/
public class GeoDBTestSupport extends TestSupport {
public DataSourceUtils createDataSourceUtil(ServiceRegistry serviceRegistry) {
super.createDataSourceUtil( serviceRegistry );
try {
return new GeoDBDataSourceUtils( driver(), url(), user(), passwd(), getSQLExpressionTemplate() );
}
catch (SQLException e) {
throw new RuntimeException( e );
}
catch (IOException e) {
throw new RuntimeException( e );
}
}
public TestData createTestData(BaseCoreFunctionalTestCase testcase) {
return TestData.fromFile( "h2geodb/test-geodb-data-set.xml" );
}
public GeometryEquality createGeometryEquality() {
return new GeoDBGeometryEquality();
}
public AbstractExpectationsFactory createExpectationsFactory(DataSourceUtils dataSourceUtils) {
if ( dataSourceUtils instanceof GeoDBDataSourceUtils ) {
return new GeoDBExpectationsFactory( (GeoDBDataSourceUtils) dataSourceUtils );
}
else {
throw new IllegalArgumentException( "Requires a GeoDBDataSourceUtils instance" );
}
}
public SQLExpressionTemplate getSQLExpressionTemplate() {
return new GeoDBExpressionTemplate();
}
}