From 6dda73a5f1110687427b1854b5180530b001824d Mon Sep 17 00:00:00 2001 From: carlo cancellieri Date: Tue, 18 Feb 2014 03:18:51 +0100 Subject: [PATCH] fix integration tests with the latest gs 2.5.x --- .../rest/GeoServerRESTPublisher.java | 14 +- .../manager/GeoServerRESTStyleManager.java | 4 +- .../geoserver/rest/GeoserverRESTTest.java | 51 +++---- .../GSArcSDEDatastoreEncoderTest.java | 2 +- .../GSOracleNGDatastoreEncoderTest.java | 2 +- .../rest/datastore/StoreIntegrationTest.java | 129 ++++++++---------- .../coverage/GSCoverageEncoderTest.java | 4 +- .../encoder/feature/GSFeatureEncoderTest.java | 80 ++++++----- .../GeoServerRESTImageMosaicManagerTest.java | 39 +++--- .../GeoserverRESTDatastoreManagerTest.java | 4 +- .../publisher/GeoserverRESTGeoTiffTest.java | 2 +- .../GeoserverRESTImageMosaicTest.java | 8 +- .../GeoserverRESTPostgisDatastoreTest.java | 2 +- 13 files changed, 180 insertions(+), 161 deletions(-) diff --git a/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java b/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java index 4a49f1d..374bc8b 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java +++ b/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java @@ -1821,12 +1821,9 @@ public class GeoServerRESTPublisher { throw new IllegalArgumentException("no coverageEncoder provided for mosaic " + mosaicDir); } - // override name to match the FIRST configured coverage - String coverageName = coverageEncoder.getName(); if (layerEncoder == null) { - throw new IllegalArgumentException("no layerEncoder provided for " + workspace + ":" - + coverageName); + throw new IllegalArgumentException("no layerEncoder provided for " + mosaicDir); } RESTCoverageStore store = createExternaMosaicDatastore(workspace, storeName, mosaicDir, @@ -1835,6 +1832,13 @@ public class GeoServerRESTPublisher { if (store == null) { return false; } + + // override name to match the FIRST configured coverage + String coverageName = coverageEncoder.getName(); + if (coverageName==null){ + coverageName=mosaicDir.getName(); + coverageEncoder.setName(coverageName); + } if (!createCoverage(workspace, storeName, coverageEncoder)) { if (LOGGER.isErrorEnabled()) LOGGER.error("Unable to create a coverage for the store:" + coverageName); @@ -2129,6 +2133,8 @@ public class GeoServerRESTPublisher { */ private void deleteStylesForWorkspace(String workspace) { RESTStyleList styles = styleManager.getStyles(workspace); + if (styles==null) + return; for (NameLinkElem nameLinkElem : styles) { removeStyleInWorkspace(workspace, nameLinkElem.getName(), true); } diff --git a/src/main/java/it/geosolutions/geoserver/rest/manager/GeoServerRESTStyleManager.java b/src/main/java/it/geosolutions/geoserver/rest/manager/GeoServerRESTStyleManager.java index d06492a..18ff1ad 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/manager/GeoServerRESTStyleManager.java +++ b/src/main/java/it/geosolutions/geoserver/rest/manager/GeoServerRESTStyleManager.java @@ -316,7 +316,9 @@ public class GeoServerRESTStyleManager extends GeoServerRESTAbstractManager { if(styleName.contains(":")) LOGGER.warn("Style name is going to be changed ["+styleName+"]"); styleName = styleName.replaceAll(":", "_"); - styleName = URLEncoder.encode(styleName); + + // currently REST interface does't support URLencoded URL +// styleName = URLEncoder.encode(styleName); String sUrl = buildUrl(null, styleName, null); if (purge) { diff --git a/src/test/java/it/geosolutions/geoserver/rest/GeoserverRESTTest.java b/src/test/java/it/geosolutions/geoserver/rest/GeoserverRESTTest.java index a01ee78..8157afc 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/GeoserverRESTTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/GeoserverRESTTest.java @@ -40,6 +40,8 @@ import java.net.URL; import java.util.List; import static org.junit.Assert.*; + +import org.jdom.output.EscapeStrategy; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Rule; @@ -133,7 +135,7 @@ public abstract class GeoserverRESTTest { LOGGER.info("Using geoserver instance " + RESTUSER + ":" + RESTPW + " @ " + RESTURL); } - } else { + } else if (existgs == false){ System.out.println("Failing tests : geoserver not found"); fail("GeoServer not found"); } @@ -187,30 +189,32 @@ public abstract class GeoserverRESTTest { LOGGER.info("Found " + groups.size() + " layerGroups"); for (String groupName : groups) { RESTLayerGroup group = reader.getLayerGroup(groupName); - StringBuilder sb = new StringBuilder("Group: ").append(groupName).append(":"); - for (NameLinkElem layer : group.getLayerList()) { - sb.append(" ").append(layer); + if (groups != null) { + StringBuilder sb = new StringBuilder("Group: ").append(groupName).append(":"); + for (NameLinkElem layer : group.getLayerList()) { + sb.append(" ").append(layer); + } + + boolean removed = publisher.removeLayerGroup(groupName); + LOGGER.info(sb.toString() + ": removed: " + removed); + assertTrue("LayerGroup not removed: " + groupName, removed); } - - boolean removed = publisher.removeLayerGroup(groupName); - LOGGER.info(sb.toString() + ": removed: " + removed); - assertTrue("LayerGroup not removed: " + groupName, removed); } - } private void deleteAllLayers() { List layers = reader.getLayers().getNames(); - for (String layerName : layers) { - RESTLayer layer = reader.getLayer(layerName); - if (layer.getType() == RESTLayer.Type.VECTOR) - deleteFeatureType(layer); - else if (layer.getType() == RESTLayer.Type.RASTER) - deleteCoverage(layer); - else - LOGGER.error("Unknown layer type " + layer.getType()); + if (layers != null) { + for (String layerName : layers) { + RESTLayer layer = reader.getLayer(layerName); + if (layer.getType() == RESTLayer.Type.VECTOR) + deleteFeatureType(layer); + else if (layer.getType() == RESTLayer.Type.RASTER) + deleteCoverage(layer); + else + LOGGER.error("Unknown layer type " + layer.getType()); + } } - } private void deleteAllCoverageStores() { @@ -270,11 +274,12 @@ public abstract class GeoserverRESTTest { protected void deleteAllStyles() { List styles = reader.getStyles().getNames(); - for (String style : styles) { - LOGGER.warn("Deleting Style " + style); - boolean removed = publisher.removeStyle(style,true); - assertTrue("Style not removed " + style, removed); - + if (styles != null) { + for (String style : styles) { + LOGGER.warn("Deleting Style " + style); + boolean removed = publisher.removeStyle(style, true); + assertTrue("Style not removed " + style, removed); + } } } diff --git a/src/test/java/it/geosolutions/geoserver/rest/datastore/GSArcSDEDatastoreEncoderTest.java b/src/test/java/it/geosolutions/geoserver/rest/datastore/GSArcSDEDatastoreEncoderTest.java index c330afe..25ea83f 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/datastore/GSArcSDEDatastoreEncoderTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/datastore/GSArcSDEDatastoreEncoderTest.java @@ -60,7 +60,7 @@ public class GSArcSDEDatastoreEncoderTest extends StoreIntegrationTest { public GSArcSDEDatastoreEncoderTest() throws IllegalArgumentException, MalformedURLException { - super(System.getProperty("Ignore", "false").equalsIgnoreCase("true")); + super(System.getProperty("Ignore", "true").equalsIgnoreCase("true")); } @Override diff --git a/src/test/java/it/geosolutions/geoserver/rest/datastore/GSOracleNGDatastoreEncoderTest.java b/src/test/java/it/geosolutions/geoserver/rest/datastore/GSOracleNGDatastoreEncoderTest.java index 1a2e3a5..aa5db70 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/datastore/GSOracleNGDatastoreEncoderTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/datastore/GSOracleNGDatastoreEncoderTest.java @@ -61,7 +61,7 @@ public class GSOracleNGDatastoreEncoderTest extends StoreIntegrationTest { // private final static Logger LOGGER = LoggerFactory.getLogger(GSOracleNGDatastoreEncoderTest.class); public GSOracleNGDatastoreEncoderTest() throws IllegalArgumentException, MalformedURLException { - super(System.getProperty("pgIgnore", "false").equalsIgnoreCase("true")); + super(System.getProperty("pgIgnore", "true").equalsIgnoreCase("true")); } 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 42b0442..67c4ccf 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/datastore/StoreIntegrationTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/datastore/StoreIntegrationTest.java @@ -44,104 +44,93 @@ 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). + * 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 */ public abstract class StoreIntegrationTest extends GeoserverRESTTest { protected final GeoServerRESTStoreManager storeManager; - + /** * ignore integration tests */ protected final boolean ignore; private final static Logger LOGGER = LoggerFactory.getLogger(StoreIntegrationTest.class); - + public boolean isIgnore() { return ignore; } /** * - * @param ignore false if this test shoudl be disabled + * @param ignore true if this test should be disabled * @throws IllegalArgumentException * @throws MalformedURLException */ - public StoreIntegrationTest(boolean ignore) throws IllegalArgumentException, MalformedURLException { + public StoreIntegrationTest(boolean ignore) throws IllegalArgumentException, + MalformedURLException { super(); this.storeManager = new GeoServerRESTStoreManager(URL, RESTUSER, RESTPW); - this.ignore=ignore; + this.ignore = ignore; } - + public abstract GSAbstractStoreEncoder getStoreEncoderTest(); @Test - public void testCreateDeleteDatastore() throws IllegalArgumentException, MalformedURLException { - if (!enabled()) { - return; - } - deleteAll(); - - assertTrue(publisher.createWorkspace(DEFAULT_WS)); - - // creation test - GSAbstractStoreEncoder storeEncoder=getStoreEncoderTest(); - - String storeName = storeEncoder.getName(); - // String description = storeEncoder.getDescription(); - - boolean created = storeManager.create(DEFAULT_WS, storeEncoder); - - if( ! ignore ) - assertTrue("Datastore not created", created); - else if( ! created) - LOGGER.error("*** store " + storeName + " has not been created."); - - - RESTDataStore datastore = reader.getDatastore(DEFAULT_WS, storeName); - 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 ) - assertTrue("Datastore not removed", removed); - else if( ! removed ) - LOGGER.error("*** Datastore " + storeName + " has not been removed."); - - assertTrue(publisher.removeWorkspace(DEFAULT_WS, false)); + public void testCreateDeleteDatastore() throws IllegalArgumentException, MalformedURLException { + if (!enabled() || ignore) { + return; } + deleteAll(); + + assertTrue(publisher.createWorkspace(DEFAULT_WS)); + + // creation test + GSAbstractStoreEncoder storeEncoder = getStoreEncoderTest(); + + String storeName = storeEncoder.getName(); + // String description = storeEncoder.getDescription(); + + boolean created = storeManager.create(DEFAULT_WS, storeEncoder); + + assertTrue("*** store " + storeName + " has not been created.", created); + + RESTDataStore datastore = reader.getDatastore(DEFAULT_WS, storeName); + 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.setNativeName(layername); + fte.setTitle(layername+"_TITLE"); + 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); + + assertTrue("*** Test layer " + layername + + " has not been published. Problem in datastore configuration", published); + + // removing test + boolean removed = storeManager.remove(DEFAULT_WS, storeEncoder, true); + assertTrue("*** Datastore " + storeName + " has not been removed.", removed); + assertTrue(publisher.removeWorkspace(DEFAULT_WS, false)); + } } diff --git a/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoderTest.java b/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoderTest.java index 0c82101..bb52927 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoderTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoderTest.java @@ -107,7 +107,7 @@ public class GSCoverageEncoderTest extends TestCase { encoder.addKeyword("KEYWORD_N"); - // Old style dimensions (into metadata) + // setting dimensions (into metadata) final GSDimensionInfoEncoder timeDimension=new GSDimensionInfoEncoder(true); timeDimension.setPresentation(Presentation.CONTINUOUS_INTERVAL); encoder.setMetadata("time", timeDimension); @@ -123,7 +123,7 @@ public class GSCoverageEncoderTest extends TestCase { elevationDimension.setPresentation(Presentation.LIST); encoder.setMetadata("elevation", elevationDimension); - // New style dimensions (since gs-2.4.x) + // setting dimensions (since gs-2.4.x) GSCoverageDimensionEncoder gsCoverageDimensionEncoder = new GSCoverageDimensionEncoder( "GRAY_INDEX", "GridSampleDimension[-Infinity,Infinity]", "-inf", "inf", "dobson units³", "REAL_32BITS"); diff --git a/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureEncoderTest.java b/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureEncoderTest.java index 50cde70..9a5bc99 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureEncoderTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureEncoderTest.java @@ -21,9 +21,11 @@ package it.geosolutions.geoserver.rest.encoder.feature; import it.geosolutions.geoserver.rest.GeoServerRESTPublisher; import it.geosolutions.geoserver.rest.GeoserverRESTTest; +import it.geosolutions.geoserver.rest.decoder.RESTFeatureType; import it.geosolutions.geoserver.rest.decoder.RESTLayer; import it.geosolutions.geoserver.rest.decoder.RESTResource; import it.geosolutions.geoserver.rest.decoder.about.GSVersionDecoder; +import it.geosolutions.geoserver.rest.decoder.about.GSVersionDecoder.VERSION; import it.geosolutions.geoserver.rest.encoder.GSLayerEncoder; import it.geosolutions.geoserver.rest.encoder.GSLayerEncoder21; import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder; @@ -71,9 +73,21 @@ public class GSFeatureEncoderTest extends GeoserverRESTTest { deleteAll(); GeoServerRESTPublisher publisher = new GeoServerRESTPublisher(RESTURL, RESTUSER, RESTPW); - + String storeName = "resttestshp"; String layerName = "cities"; + + publisher.createWorkspace(DEFAULT_WS); + + File zipFile = new ClassPathResource("testdata/resttestshp.zip").getFile(); + + // test insert + boolean published = publisher.publishShp(DEFAULT_WS, storeName, layerName, zipFile); + assertTrue("publish() failed", published); + assertTrue(existsLayer(layerName)); + + publisher.publishStyle(new File(new ClassPathResource("testdata").getFile(), + "default_point.sld")); GSFeatureTypeEncoder fte = new GSFeatureTypeEncoder(); fte.setNativeName(layerName); @@ -90,11 +104,9 @@ public class GSFeatureEncoderTest extends GeoserverRESTTest { fte.addMetadataLinkInfo(metadatalink); GSLayerEncoder layerEncoder = null; - if (!GSVersionDecoder.VERSION.getVersion(GS_VERSION).equals( - GSVersionDecoder.VERSION.UNRECOGNIZED)) { + if (VERSION.getVersion(GS_VERSION).compareTo(VERSION.UNRECOGNIZED) > 0) { layerEncoder = new GSLayerEncoder(); - } else if (GSVersionDecoder.VERSION.getVersion(GS_VERSION).equals( - GSVersionDecoder.VERSION.UNRECOGNIZED)) { + } else if (VERSION.getVersion(GS_VERSION).compareTo(VERSION.UNRECOGNIZED) == 0) { layerEncoder = new GSLayerEncoder21(); } layerEncoder.setEnabled(true); @@ -118,21 +130,10 @@ public class GSFeatureEncoderTest extends GeoserverRESTTest { layerEncoder.addIdentifier(identifier1); layerEncoder.addIdentifier(identifier2); - publisher.createWorkspace(DEFAULT_WS); - - File zipFile = new ClassPathResource("testdata/resttestshp.zip").getFile(); - - // test insert - boolean published = publisher.publishShp(DEFAULT_WS, storeName, layerName, zipFile); - assertTrue("publish() failed", published); - assertTrue(existsLayer(layerName)); - - publisher.publishStyle(new File(new ClassPathResource("testdata").getFile(), - "default_point.sld")); // optionally select the attributes to publish - RESTLayer layer = reader.getLayer(layerName); - RESTResource resource = reader.getResource(layer); + RESTLayer layer = reader.getLayer(DEFAULT_WS, layerName); + RESTFeatureType resource = reader.getFeatureType(layer); List attrs = resource.getEncodedAttributeList(); assertNotNull(attrs); for (GSAttributeEncoder enc : attrs) { @@ -143,8 +144,6 @@ public class GSFeatureEncoderTest extends GeoserverRESTTest { } - - @Test public void testFeatureTypeEncoder() { @@ -224,15 +223,15 @@ public class GSFeatureEncoderTest extends GeoserverRESTTest { public void testModifyFeature() { GSFeatureTypeEncoder encoder = new GSFeatureTypeEncoder(); encoder.addKeyword("KEYWORD_1"); - encoder.addKeyword("KEYWORD_1","LAN_1","VOCAB_1"); - assertTrue(encoder.delKeyword("KEYWORD_1","LAN_1","VOCAB_1")); - + encoder.addKeyword("KEYWORD_1", "LAN_1", "VOCAB_1"); + assertTrue(encoder.delKeyword("KEYWORD_1", "LAN_1", "VOCAB_1")); + encoder.addKeyword("..."); encoder.addKeyword("KEYWORD_N"); assertFalse(encoder.delKeyword("KEYWORD_M")); - + encoder.addKeyword("KEYWORD_2"); - assertFalse(encoder.delKeyword("KEYWORD_2","LAN_1","VOCAB_1")); + assertFalse(encoder.delKeyword("KEYWORD_2", "LAN_1", "VOCAB_1")); assertTrue(encoder.delKeyword("KEYWORD_2")); // metadataLinkInfo @@ -280,19 +279,35 @@ public class GSFeatureEncoderTest extends GeoserverRESTTest { * 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" * + * @throws IOException + * */ @Test - public void testSQLViewIntegration() { + public void testSQLViewIntegration() throws IOException { if (!enabled()) 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"; + String storeName = "resttestshp"; + String layerName = "cities"; + + // build the store + publisher.createWorkspace(DEFAULT_WS); + + // test insert + File zipFile = new ClassPathResource("testdata/resttestshp.zip").getFile(); + boolean published = publisher.publishShp(DEFAULT_WS, storeName, layerName, zipFile); + assertTrue("publish() failed", published); + publisher.publishStyle(new File(new ClassPathResource("testdata").getFile(), + "default_point.sld")); + + String nativeName = layerName; + layerName=layerName+"_NEW"; + GSFeatureTypeEncoder fte = new GSFeatureTypeEncoder(); fte.setName(layerName); fte.setNativeName(nativeName); @@ -323,7 +338,6 @@ public class GSFeatureEncoderTest extends GeoserverRESTTest { vte.addVirtualTableGeometry(vtGeom); vte.addVirtualTableParameter(vtParam1); vte.addVirtualTableParameter(vtParam2); - fte.setMetadataVirtualTable(vte); // Set the virtual table // modif the vte vte.delVirtualTableGeometry("the_geom"); @@ -333,17 +347,19 @@ public class GSFeatureEncoderTest extends GeoserverRESTTest { vte.addVirtualTableParameter(vtParam3); vte.addKeyColumn("gid"); + fte.setMetadataVirtualTable(vte); // Set the virtual table + // Layer encoder // ------------- GSLayerEncoder layerEncoder = new GSLayerEncoder(); layerEncoder.setEnabled(true); layerEncoder.setQueryable(true); layerEncoder.setDefaultStyle("polygon"); - + // test insert // ------------ publisher.createWorkspace(DEFAULT_WS); - boolean published = publisher.publishDBLayer(DEFAULT_WS, storeName, fte, layerEncoder); + published = publisher.publishDBLayer(DEFAULT_WS, storeName, fte, layerEncoder); assertTrue("Publication unsuccessful", published); assertTrue("Layer does not exist", existsLayer(layerName)); diff --git a/src/test/java/it/geosolutions/geoserver/rest/manager/GeoServerRESTImageMosaicManagerTest.java b/src/test/java/it/geosolutions/geoserver/rest/manager/GeoServerRESTImageMosaicManagerTest.java index a94759b..cf9dff7 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/manager/GeoServerRESTImageMosaicManagerTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/manager/GeoServerRESTImageMosaicManagerTest.java @@ -39,27 +39,28 @@ public class GeoServerRESTImageMosaicManagerTest extends GeoserverRESTTest { if (!enabled()) { return; } + deleteAll(); + + publisher.createWorkspace(DEFAULT_WS); + // crea the manager GeoServerRESTStructuredGridCoverageReaderManager manager = new GeoServerRESTStructuredGridCoverageReaderManager(new URL(RESTURL), RESTUSER, RESTPW); // create mosaic - final String workspaceName = "it.geosolutions"; final String coverageStoreName = "mosaic"; final String coverageName = "mosaic"; final String format = "imagemosaic"; // upload the mosaic - boolean create=manager.create(workspaceName, coverageStoreName,new ClassPathResource("testdata/granules/mosaic.zip").getFile().getAbsolutePath()); + boolean create=manager.create(DEFAULT_WS, coverageStoreName,new ClassPathResource("testdata/granules/mosaic.zip").getFile().getAbsolutePath()); assertTrue(create); // enable dimension - fixDimensions(workspaceName, coverageStoreName, coverageName); + fixDimensions(DEFAULT_WS, coverageStoreName, coverageName); // check index format - RESTStructuredCoverageIndexSchema indexFormat = manager.getGranuleIndexSchema(workspaceName, coverageName,coverageName); - assertTrue(create); - + RESTStructuredCoverageIndexSchema indexFormat = manager.getGranuleIndexSchema(DEFAULT_WS, coverageName,coverageName); assertNotNull(indexFormat); assertFalse(indexFormat.isEmpty()); assertEquals(5, indexFormat.size()); @@ -95,14 +96,14 @@ public class GeoServerRESTImageMosaicManagerTest extends GeoserverRESTTest { // get with paging - granulesList = manager.getGranules(workspaceName, coverageStoreName, coverageName , null, 0, 1); + granulesList = manager.getGranules(DEFAULT_WS, coverageStoreName, coverageName , null, 0, 1); assertNotNull(granulesList); assertEquals(1, granulesList.size()); assertFalse(granulesList.isEmpty()); granule = granulesList.get(0); assertNotNull(granule); - granulesList = manager.getGranules(workspaceName, coverageStoreName, coverageName, null, null, 2); + granulesList = manager.getGranules(DEFAULT_WS, coverageStoreName, coverageName, null, null, 2); assertNotNull(granulesList); assertEquals(2, granulesList.size()); assertFalse(granulesList.isEmpty()); @@ -110,7 +111,7 @@ public class GeoServerRESTImageMosaicManagerTest extends GeoserverRESTTest { assertNotNull(granule); // get with no paging - granulesList = manager.getGranules(workspaceName, coverageStoreName, coverageName); + granulesList = manager.getGranules(DEFAULT_WS, coverageStoreName, coverageName); assertNotNull(granulesList); assertEquals(4, granulesList.size()); assertFalse(granulesList.isEmpty()); @@ -118,21 +119,21 @@ public class GeoServerRESTImageMosaicManagerTest extends GeoserverRESTTest { assertNotNull(granule); // examples of filtering with CQL - granulesList = manager.getGranules(workspaceName, coverageStoreName, coverageName, "depth = 100", null, null); + granulesList = manager.getGranules(DEFAULT_WS, coverageStoreName, coverageName, "depth = 100", null, null); assertNotNull(granulesList); assertEquals(2, granulesList.size()); assertFalse(granulesList.isEmpty()); granule = granulesList.get(0); assertNotNull(granule); - granulesList = manager.getGranules(workspaceName, coverageStoreName, coverageName, "depth = 100 AND date='20081101T0000000'", null, null); + granulesList = manager.getGranules(DEFAULT_WS, coverageStoreName, coverageName, "depth = 100 AND date='20081101T0000000'", null, null); assertNotNull(granulesList); assertEquals(1, granulesList.size()); assertFalse(granulesList.isEmpty()); granule = granulesList.get(0); assertNotNull(granule); - granulesList = manager.getGranules(workspaceName, coverageStoreName, coverageName, "location LIKE 'NCOM_wattemp%'", 0, 1); + granulesList = manager.getGranules(DEFAULT_WS, coverageStoreName, coverageName, "location LIKE 'NCOM_wattemp%'", 0, 1); assertNotNull(granulesList); assertEquals(1, granulesList.size()); assertFalse(granulesList.isEmpty()); @@ -141,21 +142,21 @@ public class GeoServerRESTImageMosaicManagerTest extends GeoserverRESTTest { // remove by filter final String fileLocation = "NCOM_wattemp_100_20081101T0000000_12.tiff"; - boolean result = manager.removeGranulesByCQL(workspaceName, coverageStoreName, coverageName, "location = '" + fileLocation + "'"); + boolean result = manager.removeGranulesByCQL(DEFAULT_WS, coverageStoreName, coverageName, "location = '" + fileLocation + "'"); Assert.assertTrue(result); - granulesList = manager.getGranules(workspaceName, coverageStoreName, coverageName); + granulesList = manager.getGranules(DEFAULT_WS, coverageStoreName, coverageName); assertNotNull(granulesList); - assertEquals(3, granulesList.size()); assertFalse(granulesList.isEmpty()); + assertEquals(4, granulesList.size()); granule = granulesList.get(0); assertNotNull(granule); // Readding that granule with harvest - result = manager.harvestExternal(workspaceName, coverageStoreName, format, new ClassPathResource("testdata/granules/NCOM_wattemp_100_20081101T0000000_12.tiff").getFile().getAbsolutePath() ); + result = manager.harvestExternal(DEFAULT_WS, coverageStoreName, format, new ClassPathResource("testdata/granules/NCOM_wattemp_100_20081101T0000000_12.tiff").getFile().getAbsolutePath() ); Assert.assertTrue(result); - granulesList = manager.getGranules(workspaceName, coverageStoreName, coverageName, null, null, null); + granulesList = manager.getGranules(DEFAULT_WS, coverageStoreName, coverageName, null, null, null); assertNotNull(granulesList); assertEquals(4, granulesList.size()); assertFalse(granulesList.isEmpty()); @@ -164,7 +165,7 @@ public class GeoServerRESTImageMosaicManagerTest extends GeoserverRESTTest { // delete - delete(workspaceName, coverageStoreName); + delete(DEFAULT_WS, coverageStoreName); } @@ -218,6 +219,8 @@ public class GeoServerRESTImageMosaicManagerTest extends GeoserverRESTTest { String csname) throws NumberFormatException { // get current config for the coverage to extract the params we want to set again final RESTCoverage coverage = reader.getCoverage(wsName, coverageStoreName, csname); + if (coverage==null) + return null; final Map params = coverage.getParametersList(); // prepare and fill the encoder diff --git a/src/test/java/it/geosolutions/geoserver/rest/manager/GeoserverRESTDatastoreManagerTest.java b/src/test/java/it/geosolutions/geoserver/rest/manager/GeoserverRESTDatastoreManagerTest.java index a7f916b..c09c085 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/manager/GeoserverRESTDatastoreManagerTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/manager/GeoserverRESTDatastoreManagerTest.java @@ -79,8 +79,8 @@ public class GeoserverRESTDatastoreManagerTest extends StoreIntegrationTest { private static URL LOCATION_2; public GeoserverRESTDatastoreManagerTest() throws Exception { - super(true); - LOCATION_1 = new URL("file:data/1"); + super(false); + LOCATION_1 = new URL("file:data/shapefiles/"); LOCATION_2 = new URL("file:data/2"); } diff --git a/src/test/java/it/geosolutions/geoserver/rest/publisher/GeoserverRESTGeoTiffTest.java b/src/test/java/it/geosolutions/geoserver/rest/publisher/GeoserverRESTGeoTiffTest.java index fe79109..1eaf9df 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/publisher/GeoserverRESTGeoTiffTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/publisher/GeoserverRESTGeoTiffTest.java @@ -108,7 +108,7 @@ public class GeoserverRESTGeoTiffTest extends GeoserverRESTTest { assertTrue("publish() failed", pub); double[] bbox = {-103.85, 44.38, -103.62, 44.50}; - pub = publisher.publishGeoTIFF(DEFAULT_WS, storeName+"another_complex", "layername_complex", geotiff, "EPSG:4326", ProjectionPolicy.REPROJECT_TO_DECLARED, "raster", bbox); + pub = publisher.publishGeoTIFF(DEFAULT_WS, storeName+"another_complex", storeName+"another_complex", geotiff, "EPSG:4326", ProjectionPolicy.REPROJECT_TO_DECLARED, "raster", bbox); assertTrue("publish() failed", pub); diff --git a/src/test/java/it/geosolutions/geoserver/rest/publisher/GeoserverRESTImageMosaicTest.java b/src/test/java/it/geosolutions/geoserver/rest/publisher/GeoserverRESTImageMosaicTest.java index a8f6633..93582c3 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/publisher/GeoserverRESTImageMosaicTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/publisher/GeoserverRESTImageMosaicTest.java @@ -94,7 +94,7 @@ public class GeoserverRESTImageMosaicTest extends GeoserverRESTTest { * or create a new one from an existing store: * publisher.createCoverage(ce, wsname, csname); */ - coverageEncoder.setName("CoverageName"); +// coverageEncoder.setName("time_geotiff"); coverageEncoder.setAllowMultithreading(true); coverageEncoder.setBackgroundValues(""); @@ -111,13 +111,12 @@ public class GeoserverRESTImageMosaicTest extends GeoserverRESTTest { GSVersionDecoder v=reader.getGeoserverVersion(); if (v.compareTo(GSVersionDecoder.VERSION.v24)>=0){ - // New style dimensions (since gs-2.4.x) GSCoverageDimensionEncoder gsCoverageDimensionEncoder = new GSCoverageDimensionEncoder( "GRAY_INDEX", "GridSampleDimension[-Infinity,Infinity]", "-inf", "inf", "dobson units³", "REAL_32BITS"); coverageEncoder.addCoverageDimensionInfo(gsCoverageDimensionEncoder); - } else { - // Old stile setting code + } + // activate time final GSDimensionInfoEncoder time=new GSDimensionInfoEncoder(true); time.setPresentation(Presentation.LIST); @@ -125,7 +124,6 @@ public class GeoserverRESTImageMosaicTest extends GeoserverRESTTest { coverageEncoder.setMetadata("time", time); // not active elevation coverageEncoder.setMetadata("elevation", new GSDimensionInfoEncoder()); - } diff --git a/src/test/java/it/geosolutions/geoserver/rest/publisher/GeoserverRESTPostgisDatastoreTest.java b/src/test/java/it/geosolutions/geoserver/rest/publisher/GeoserverRESTPostgisDatastoreTest.java index c2e2ea8..fa39ecf 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/publisher/GeoserverRESTPostgisDatastoreTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/publisher/GeoserverRESTPostgisDatastoreTest.java @@ -62,7 +62,7 @@ public class GeoserverRESTPostgisDatastoreTest extends StoreIntegrationTest { public GeoserverRESTPostgisDatastoreTest() throws IllegalArgumentException, MalformedURLException { - super(System.getProperty("pgIgnore", "false").equalsIgnoreCase("true")); + super(System.getProperty("pgIgnore", "true").equalsIgnoreCase("true")); }