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 key
* @param dimensionInfo * @param dimensionInfo
* *
* @deprecated Replaced by
* {@link #addMetadataDimension(String, GSFeatureDimensionInfoEncoder)}
*/ */
@Deprecated
protected void addMetadata(String key, GSFeatureDimensionInfoEncoder dimensionInfo) { protected void addMetadata(String key, GSFeatureDimensionInfoEncoder dimensionInfo) {
super.addMetadata(key, dimensionInfo); super.addMetadata(key, dimensionInfo);
} }
/**
*
* @param key
* @param dimensionInfo
*/
protected void addMetadataDimension(String key, GSFeatureDimensionInfoEncoder dimensionInfo) {
super.addMetadata(key, dimensionInfo);
}
/** /**
* *
* @param key * @param key
* @param dimensionInfo * @param dimensionInfo
* *
* @deprecated Replaced by
* {@link #setMetadataDimension(String, GSFeatureDimensionInfoEncoder)}
*/ */
@Deprecated
public void setMetadata(String key, GSFeatureDimensionInfoEncoder dimensionInfo) { public void setMetadata(String key, GSFeatureDimensionInfoEncoder dimensionInfo) {
super.setMetadata(key, 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) * Add a VirtualTable (SQL View feature type)
* *

View File

@ -148,7 +148,7 @@ public class GSFeatureEncoderTest extends GeoserverRESTPublisherTest {
GSFeatureDimensionInfoEncoder dim2 = new GSFeatureDimensionInfoEncoder("ELE"); GSFeatureDimensionInfoEncoder dim2 = new GSFeatureDimensionInfoEncoder("ELE");
encoder.addMetadataDimension("elevation", dim2); encoder.addMetadata("elevation", dim2);
dim2.setPresentation(PresentationDiscrete.DISCRETE_INTERVAL, BigDecimal.valueOf(10)); dim2.setPresentation(PresentationDiscrete.DISCRETE_INTERVAL, BigDecimal.valueOf(10));
Element el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.PRESENTATION); Element el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.PRESENTATION);
Assert.assertNotNull(el); Assert.assertNotNull(el);
@ -162,7 +162,7 @@ public class GSFeatureEncoderTest extends GeoserverRESTPublisherTest {
dim2.setPresentation(Presentation.CONTINUOUS_INTERVAL); dim2.setPresentation(Presentation.CONTINUOUS_INTERVAL);
encoder.setMetadataDimension("time", new GSFeatureDimensionInfoEncoder("time")); encoder.setMetadata("time", new GSFeatureDimensionInfoEncoder("time"));
el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.PRESENTATION); el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.PRESENTATION);
Assert.assertNotNull(el); Assert.assertNotNull(el);
el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.RESOLUTION); el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.RESOLUTION);
@ -213,7 +213,7 @@ public class GSFeatureEncoderTest extends GeoserverRESTPublisherTest {
// LOGGER.info(encoder.toString()); // LOGGER.info(encoder.toString());
final String metadata = "elevation"; final String metadata = "elevation";
encoder.setMetadataDimension(metadata, elevationDimension); encoder.setMetadata(metadata, elevationDimension);
elevationDimension.setPresentation(PresentationDiscrete.DISCRETE_INTERVAL, elevationDimension.setPresentation(PresentationDiscrete.DISCRETE_INTERVAL,
BigDecimal.valueOf(10)); 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 @Test
public void testSQLViewIntegration(){ public void testSQLViewIntegration(){
@ -241,7 +252,8 @@ public class GSFeatureEncoderTest extends GeoserverRESTPublisherTest {
return; return;
deleteAll(); deleteAll();
GeoServerRESTPublisher publisher = new GeoServerRESTPublisher(RESTURL, RESTUSER, RESTPW); GeoServerRESTPublisher publisher = new GeoServerRESTPublisher(RESTURL, RESTUSER, RESTPW);
String storeName = "statesdb"; //name of the datastore setup for tests String storeName = "statesdb"; //name of the datastore setup for tests
String layerName = "my_sqlviewlayer"; String layerName = "my_sqlviewlayer";
String nativeName = "popstates"; String nativeName = "popstates";

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

Binary file not shown.