From 29a2636dfb14663f675084a2b49654fdda740950 Mon Sep 17 00:00:00 2001 From: eblondel Date: Sun, 28 Apr 2013 21:09:14 +0200 Subject: [PATCH] #71 master - add layer publication tests in StoreIntegrationTest --- .../rest/datastore/StoreIntegrationTest.java | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/src/test/java/it/geosolutions/geoserver/rest/datastore/StoreIntegrationTest.java b/src/test/java/it/geosolutions/geoserver/rest/datastore/StoreIntegrationTest.java index fab7cb7..803e6a2 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/datastore/StoreIntegrationTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/datastore/StoreIntegrationTest.java @@ -29,8 +29,10 @@ import java.net.MalformedURLException; import it.geosolutions.geoserver.rest.GeoserverRESTTest; import it.geosolutions.geoserver.rest.decoder.RESTDataStore; import it.geosolutions.geoserver.rest.encoder.GSAbstractStoreEncoder; +import it.geosolutions.geoserver.rest.encoder.GSLayerEncoder; import it.geosolutions.geoserver.rest.encoder.datastore.GSAbstractDatastoreEncoder; import it.geosolutions.geoserver.rest.encoder.datastore.GSOracleNGDatastoreEncoder; +import it.geosolutions.geoserver.rest.encoder.feature.GSFeatureTypeEncoder; import it.geosolutions.geoserver.rest.manager.GeoServerRESTStoreManager; import org.junit.Before; @@ -41,8 +43,14 @@ import org.slf4j.LoggerFactory; /** *

* Since these tests require a running Store instance, this is more like integration tests.
- * + * + * For testing that a datastore is properly configured, a layer publication has + * to be attempted. For this, the 'states' data (states shapefile - available in + * testdata/states.zip) has to be imported in the corresponding store. + * Note: For Oracle NG this name has to be uppercase (STATES). + * * @author carlo cancellieri - GeoSolutions + * @author emmanuel blondel * * @see GeoserverRESTTest */ @@ -102,6 +110,31 @@ public abstract class StoreIntegrationTest extends GeoserverRESTTest { assertNotNull(datastore); LOGGER.info("The type of the created datastore is: " + datastore.getStoreType()); + //check if the datastore is properly configured in GS for publishing layers + String layername = "states"; + if(storeEncoder instanceof GSOracleNGDatastoreEncoder) + layername = layername.toUpperCase(); + + GSFeatureTypeEncoder fte = new GSFeatureTypeEncoder(); + fte.setName(layername); + fte.setTitle(layername); + fte.setNativeCRS("EPSG:4326"); + fte.setDescription("desc"); + fte.setEnabled(true); + GSLayerEncoder layerEncoder = new GSLayerEncoder(); + layerEncoder.setEnabled(true); + layerEncoder.setQueryable(true); + layerEncoder.setDefaultStyle("polygon"); + + boolean published = publisher.publishDBLayer(DEFAULT_WS, storeName, fte, layerEncoder); + if(!ignore){ + assertTrue("Test layer not published", published); + }else if(!published){ + LOGGER.error("*** Test layer " + + layername + + " has not been published. Problem in datastore configuration"); + } + // removing test boolean removed = storeManager.remove(DEFAULT_WS, storeEncoder, true); if( ! ignore )