VirtualTable support - fix GSFeatureTypeEncoder + add test data &

setting info for integration test
This commit is contained in:
eblondel 2013-04-15 12:35:21 +02:00
parent 3dc49b952f
commit 00e3f89d10
3 changed files with 17 additions and 29 deletions

View File

@ -53,46 +53,22 @@ public class GSFeatureTypeEncoder extends GSResourceEncoder {
* @param key
* @param dimensionInfo
*
* @deprecated Replaced by
* {@link #addMetadataDimension(String, GSFeatureDimensionInfoEncoder)}
*/
@Deprecated
protected void addMetadata(String key, GSFeatureDimensionInfoEncoder dimensionInfo) {
super.addMetadata(key, dimensionInfo);
}
/**
*
* @param key
* @param dimensionInfo
*/
protected void addMetadataDimension(String key, GSFeatureDimensionInfoEncoder dimensionInfo) {
super.addMetadata(key, dimensionInfo);
}
/**
*
* @param key
* @param dimensionInfo
*
* @deprecated Replaced by
* {@link #setMetadataDimension(String, GSFeatureDimensionInfoEncoder)}
*/
@Deprecated
public void setMetadata(String key, GSFeatureDimensionInfoEncoder dimensionInfo) {
super.setMetadata(key, dimensionInfo);
}
/**
*
* @param key
* @param dimensionInfo
*/
public void setMetadataDimension(String key, GSFeatureDimensionInfoEncoder dimensionInfo) {
super.setMetadata(key, dimensionInfo);
}
/**
* Add a VirtualTable (SQL View feature type)
*

View File

@ -148,7 +148,7 @@ public class GSFeatureEncoderTest extends GeoserverRESTPublisherTest {
GSFeatureDimensionInfoEncoder dim2 = new GSFeatureDimensionInfoEncoder("ELE");
encoder.addMetadataDimension("elevation", dim2);
encoder.addMetadata("elevation", dim2);
dim2.setPresentation(PresentationDiscrete.DISCRETE_INTERVAL, BigDecimal.valueOf(10));
Element el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.PRESENTATION);
Assert.assertNotNull(el);
@ -162,7 +162,7 @@ public class GSFeatureEncoderTest extends GeoserverRESTPublisherTest {
dim2.setPresentation(Presentation.CONTINUOUS_INTERVAL);
encoder.setMetadataDimension("time", new GSFeatureDimensionInfoEncoder("time"));
encoder.setMetadata("time", new GSFeatureDimensionInfoEncoder("time"));
el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.PRESENTATION);
Assert.assertNotNull(el);
el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.RESOLUTION);
@ -213,7 +213,7 @@ public class GSFeatureEncoderTest extends GeoserverRESTPublisherTest {
// LOGGER.info(encoder.toString());
final String metadata = "elevation";
encoder.setMetadataDimension(metadata, elevationDimension);
encoder.setMetadata(metadata, elevationDimension);
elevationDimension.setPresentation(PresentationDiscrete.DISCRETE_INTERVAL,
BigDecimal.valueOf(10));
@ -234,6 +234,17 @@ public class GSFeatureEncoderTest extends GeoserverRESTPublisherTest {
}
/**
* Test method for virtual table encoding / SQL view layer integration
*
* Settings information for integration tests
* - test is based on the data used in http://docs.geoserver.org/latest/en/user/data/database/sqlview.html#parameterizing-sql-views
* (states shapefile - available in testdata/states.zip)
* - create a postgis db
* - import the states shapefile (using shp2pgsql or Postgis shapefile uploader)
* - In Geoserver, create a postgis datastore for this DB, with the name "statesdb"
*
*/
@Test
public void testSQLViewIntegration(){
@ -241,7 +252,8 @@ public class GSFeatureEncoderTest extends GeoserverRESTPublisherTest {
return;
deleteAll();
GeoServerRESTPublisher publisher = new GeoServerRESTPublisher(RESTURL, RESTUSER, RESTPW);
String storeName = "statesdb"; //name of the datastore setup for tests
String layerName = "my_sqlviewlayer";
String nativeName = "popstates";

BIN
src/test/resources/testdata/states.zip vendored Normal file

Binary file not shown.