gcube-sdi-suite/gcube-geoserver-client/src/test/java/org/gcube/spatial/data/clients/geoserver/GSTests.java

156 lines
5.3 KiB
Java
Raw Normal View History

2021-02-17 16:40:34 +01:00
package org.gcube.spatial.data.clients.geoserver;
2021-04-21 17:47:48 +02:00
import static org.junit.Assert.assertFalse;
2021-03-04 16:44:56 +01:00
import static org.junit.Assert.assertTrue;
import static org.junit.Assume.assumeTrue;
2021-04-29 15:54:02 +02:00
import java.io.File;
import java.io.IOException;
2021-04-21 17:47:48 +02:00
import java.nio.charset.Charset;
2021-04-29 19:39:52 +02:00
import java.util.ArrayList;
import java.util.List;
2021-02-19 18:45:01 +01:00
import java.util.UUID;
import org.gcube.sdi.test.GCubeSDITest;
2021-04-21 12:48:12 +02:00
import org.gcube.spatial.data.clients.SDIGenericPlugin;
2021-04-29 19:39:52 +02:00
import org.gcube.spatial.data.clients.geoserver.model.FeatureTypeInfo;
import org.gcube.spatial.data.clients.geoserver.model.FeatureTypeInfo.AttributeList;
2021-03-04 16:44:56 +01:00
import org.gcube.spatial.data.clients.model.engine.Engine;
2021-02-17 16:40:34 +01:00
import org.gcube.spatial.data.sdi.model.faults.RemoteException;
2021-04-21 17:47:48 +02:00
import org.gcube.spatial.data.sdi.utils.Files;
2021-02-17 16:40:34 +01:00
import org.junit.Test;
2021-03-18 18:29:52 +01:00
public class GSTests extends GCubeSDITest{
2021-02-19 18:45:01 +01:00
2021-02-17 16:40:34 +01:00
2021-03-04 16:44:56 +01:00
protected GSRESTClient getClient() throws RemoteException, Exception {
2021-04-21 12:48:12 +02:00
SDIGenericPlugin obj=manager().getClientByEngineId(Engine.GS_ENGINE);
2021-04-21 17:47:48 +02:00
assertTrue(obj.getClass().isAssignableFrom(GeoServerPlugin.class));
2021-03-04 16:44:56 +01:00
return (GSRESTClient) obj.getRESTClient();
}
2021-04-13 18:10:02 +02:00
@Test
public void basics() throws RemoteException, Exception {
assumeTrue(isTestInfrastructureEnabled());
GSRESTClient client=getClient();
2021-04-21 17:47:48 +02:00
assertTrue(client.exist());
client.authenticate();
2021-04-13 18:10:02 +02:00
}
2021-02-17 16:40:34 +01:00
@Test
public void gets() throws RemoteException, Exception {
2021-03-04 16:44:56 +01:00
assumeTrue(isTestInfrastructureEnabled());
2021-04-13 18:10:02 +02:00
2021-03-04 16:44:56 +01:00
GSRESTClient client=getClient();
2021-04-13 18:10:02 +02:00
client.authenticate();
client.getWorkspaceNames().forEach((String ws)->{
try {
if(ws!=null) {
System.out.println("************************************ WS ***************************");
2021-03-04 16:44:56 +01:00
System.out.println(client.getWorkspace(ws));
2021-04-13 18:10:02 +02:00
for(String sld:client.getStylesNamesinWorkspace(ws))
if(sld!=null)try {
System.out.println(client.getSLD(sld));
}catch(RemoteException e ) {System.err.println("Unable to read SLD "+sld+" from "+ws+". Cause "+e.getResponseHTTPCode()+": "+e.getMessage());}
2021-04-29 15:54:02 +02:00
System.out.println("WS "+ws+" ->"+client.getDataStoresInWorkspace(ws));
2021-04-13 18:10:02 +02:00
2021-04-29 15:54:02 +02:00
// for(String ds:client.getDataStoresNamesInWorkspace(ws))
// if(ds!=null) {
// try{ System.out.println(client.getDataStore(ws, ds));
// }catch(RemoteException e ) {System.err.println("Unable to read DS "+ds+" from "+ws+". Cause "+e.getResponseHTTPCode()+": "+e.getMessage());}
// }
2021-04-13 18:10:02 +02:00
for(String ft : client.getFeatureTypesInWorkspace(ws))
if(ft!=null)try {
2021-04-29 19:39:52 +02:00
assertTrue(client.getFeatureType(ws, ft).getNativeName()!=null);
2021-04-13 18:10:02 +02:00
System.out.println(client.getFeatureType(ws, ft));
}catch(RemoteException e ) {System.err.println("Unable to read FT "+ft+" from "+ws+". Cause "+e.getResponseHTTPCode()+": "+e.getMessage());}
for(String l : client.getLayers(ws))
if(l!=null)try {
System.out.println(client.getLayerInWorkspace(ws, l));
System.out.println(client.getLayer(l));
}catch(RemoteException e ) {System.err.println("Unable to read LA "+l+" from "+ws+". Cause "+e.getResponseHTTPCode()+": "+e.getMessage());}
2021-03-04 16:44:56 +01:00
}
2021-04-13 18:10:02 +02:00
}catch(Exception e) {
System.err.println("Unable to check "+ws+" : "+e);
2021-02-19 18:45:01 +01:00
}
2021-04-13 18:10:02 +02:00
});
System.out.println("Listing layers without ws");
// client.getLayers().forEach((String l)->{
// try{System.out.println(client.getLayer(l));
// }catch(RemoteException e ) {System.err.println("Unable to read LA "+l+". Cause "+e.getResponseHTTPCode()+": "+e.getMessage());}
// catch(Exception e ) {System.err.println("Unable to read LA "+l+". Cause : "+e.getMessage());}
// });
2021-02-17 16:40:34 +01:00
}
2021-04-13 18:10:02 +02:00
@Test
public void CRUDS() throws RemoteException, Exception {
assumeTrue(isTestInfrastructureEnabled());
GSRESTClient client=getClient();
client.authenticate();
String ws=UUID.randomUUID().toString().replace("-", "_");
client.createWorkspace(ws);
client.getWorkspace(ws);
2021-04-29 19:39:52 +02:00
// SLD
String myStyle=UUID.randomUUID().toString().replace("-", "_");
System.out.println("style name is :"+ myStyle);
client.createStyle(myStyle,read("clustered_points.sld"));
assertTrue("SLD registered ",client.getStylesNames().contains(myStyle));
client.deleteStyle(myStyle, true, true);
assertFalse("SLD Removed",client.getStylesNames().contains(myStyle));
2021-04-21 17:47:48 +02:00
// DS
// String myDS=UUID.randomUUID().toString().replace("-", "_");
//
// HashMap<String,String> parameters=new HashMap<String, String>();
//
//// parameters.put("dbtype","gpkg");
// parameters.put("url","gpkg");
//
2021-04-29 19:39:52 +02:00
// client.publishDataStore(ws,
// new DataStoreRegistrationRequest(myDS,parameters).getDatastore());
2021-04-21 17:47:48 +02:00
//
// client.deleteWorkspace(ws,true);
2021-04-29 19:39:52 +02:00
//
//
//FT
2021-04-13 18:10:02 +02:00
2021-04-20 17:24:34 +02:00
2021-04-29 19:39:52 +02:00
FeatureTypeInfo ft= new FeatureTypeInfo();
ft.setName(UUID.randomUUID().toString().replace("-", "_"));
ft.setNativeCRS("EPSG:4326");
List<FeatureTypeInfo.Attribute> atts=new ArrayList<FeatureTypeInfo.Attribute>();
atts.add(new FeatureTypeInfo.Attribute("the_geom",1,1,true,"com.vividsolutions.jts.geom.Point",0));
ft.setAttributes(new AttributeList(atts));
System.out.println("Writing "+ft);
client.createLayerAsFeatureType("aquamaps", "timeseriesws", ft);
2021-04-13 18:10:02 +02:00
}
2021-04-20 17:24:34 +02:00
2021-04-29 15:54:02 +02:00
private static final String read(String toRead) throws IOException {
File f= Files.getFileFromResources(toRead);
return Files.readFileAsString(f.getAbsolutePath(), Charset.defaultCharset());
}
2021-02-17 16:40:34 +01:00
}