fix integration tests with the latest gs 2.5.x
This commit is contained in:
parent
5accaa01ed
commit
6dda73a5f1
@ -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);
|
||||
}
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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<String> 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<String> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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"));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -44,104 +44,93 @@ import org.slf4j.LoggerFactory;
|
||||
* <P>
|
||||
* Since these tests require a running Store instance, this is more like integration tests.<br/>
|
||||
*
|
||||
* 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));
|
||||
}
|
||||
}
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -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<GSAttributeEncoder> 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));
|
||||
|
||||
|
||||
@ -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<String, String> params = coverage.getParametersList();
|
||||
|
||||
// prepare and fill the encoder
|
||||
|
||||
@ -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");
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -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"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user