255 lines
9.0 KiB
Java
255 lines
9.0 KiB
Java
package org.gcube.application.geoportal.service;
|
|
|
|
import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
|
import org.gcube.application.geoportal.common.model.legacy.Concessione.Paths;
|
|
import org.gcube.application.geoportal.common.model.legacy.LayerConcessione;
|
|
import org.gcube.application.geoportal.common.model.legacy.report.ValidationReport.ValidationStatus;
|
|
import org.gcube.application.geoportal.common.rest.AddSectionToConcessioneRequest;
|
|
import org.gcube.application.geoportal.common.rest.InterfaceConstants;
|
|
import org.gcube.application.geoportal.common.rest.TempFile;
|
|
import org.gcube.application.geoportal.common.utils.Files;
|
|
import org.gcube.application.geoportal.common.utils.StorageUtils;
|
|
import org.gcube.application.geoportal.service.utils.Serialization;
|
|
import org.junit.Assert;
|
|
import org.junit.Test;
|
|
|
|
import javax.ws.rs.client.Entity;
|
|
import javax.ws.rs.client.WebTarget;
|
|
import javax.ws.rs.core.MediaType;
|
|
import javax.ws.rs.core.Response;
|
|
import java.io.FileInputStream;
|
|
import java.nio.charset.Charset;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import static org.junit.Assert.*;
|
|
|
|
public class ConcessioniOverMongoTest extends BasicServiceTestUnit{
|
|
|
|
|
|
private static final String PATH=InterfaceConstants.Methods.MONGO_CONCESSIONI;
|
|
|
|
private static final String PUBLISH_PATH=InterfaceConstants.Methods.PUBLISH_PATH;
|
|
private static final String FILES_PATH=InterfaceConstants.Methods.REGISTER_FILES_PATH;
|
|
|
|
|
|
|
|
|
|
private static Concessione upload(WebTarget target,String id, String path, String ...files) throws Exception {
|
|
ArrayList<TempFile> array=new ArrayList<TempFile>();
|
|
for(String file:files)
|
|
array.add(new StorageUtils().putOntoStorage(new FileInputStream(
|
|
Files.getFileFromResources("concessioni/"+file)), file));
|
|
|
|
|
|
AddSectionToConcessioneRequest request=new AddSectionToConcessioneRequest();
|
|
request.setDestinationPath(path);
|
|
|
|
request.setStreams(array);
|
|
|
|
return check(target.path(FILES_PATH).path(id).request(MediaType.APPLICATION_JSON).post(Entity.entity(Serialization.write(request), MediaType.APPLICATION_JSON)),Concessione.class);
|
|
|
|
}
|
|
|
|
|
|
private static Concessione publish(WebTarget target, Concessione conc) throws Exception {
|
|
Response resp=target.path(PUBLISH_PATH).path(conc.getMongo_id()).request(MediaType.APPLICATION_JSON).
|
|
put(Entity.entity(Serialization.write(conc), MediaType.APPLICATION_JSON));
|
|
return check(resp,Concessione.class);
|
|
}
|
|
private static Concessione unpublish(WebTarget target, String id) throws Exception {
|
|
Response resp=target.path(PUBLISH_PATH).path(id).request(MediaType.APPLICATION_JSON).
|
|
delete();
|
|
return check(resp,Concessione.class);
|
|
}
|
|
|
|
private static Concessione register(WebTarget target, Concessione c) throws Exception {
|
|
Response resp=target.request(MediaType.APPLICATION_JSON).post(Entity.entity(Serialization.write(c), MediaType.APPLICATION_JSON));
|
|
return check(resp,Concessione.class);
|
|
}
|
|
|
|
private static Concessione get(WebTarget target) throws Exception {
|
|
return register(target,TestModel.prepareConcessione());
|
|
}
|
|
|
|
private static Concessione getById(WebTarget target ,String id) throws Exception {
|
|
return check(target.path(id).request(MediaType.APPLICATION_JSON).get(),Concessione.class);
|
|
}
|
|
|
|
private static List<Concessione> query(String query,WebTarget target) throws Exception {
|
|
return check(target.path("search").request(MediaType.APPLICATION_JSON_TYPE).post(
|
|
Entity.entity(query,MediaType.APPLICATION_JSON)),List.class);
|
|
}
|
|
|
|
private static List<Concessione> queryFile(String filename,WebTarget target) throws Exception {
|
|
String query= Files.readFileAsString(Files.getFileFromResources(
|
|
"concessioni/jsonFilters/"+filename).getAbsolutePath(), Charset.defaultCharset());
|
|
return query(query,target);
|
|
}
|
|
|
|
|
|
// ********** TESTS
|
|
|
|
@Test
|
|
public void list() {
|
|
WebTarget target=target(PATH);
|
|
System.out.println(target.request(MediaType.APPLICATION_JSON).get(List.class));
|
|
}
|
|
|
|
@Test
|
|
public void search() throws Exception {
|
|
WebTarget target=target(PATH);
|
|
// System.out.println("All :"+query(null,target).size());
|
|
// System.out.println("All (filter):"+queryFile("all.json",target).size());
|
|
// System.out.println("Validated : "+ queryFile("validated.json",target).size());
|
|
// System.out.println("Legacy ID : "+ queryFile("legacyid.json",target).size());
|
|
// System.out.println("Non fabio : "+ queryFile("nonFabio.json",target).size());
|
|
System.out.println("Missing Centroid : "+ queryFile("missingCentroid.json",target).size());
|
|
}
|
|
|
|
|
|
@Test
|
|
public void getConfiguration() throws Exception {
|
|
WebTarget target=target(PATH);
|
|
System.out.println(check(target.path("some").request(MediaType.APPLICATION_JSON).head(),String.class));
|
|
}
|
|
|
|
|
|
@Test
|
|
public void createNew() throws Exception {
|
|
WebTarget target=target(PATH);
|
|
Concessione c=register(target,TestModel.prepareConcessione());
|
|
Assert.assertTrue(c.getMongo_id()!=null&&!c.getMongo_id().isEmpty());
|
|
}
|
|
|
|
|
|
@Test
|
|
public void delete() throws Exception {
|
|
WebTarget target=target(PATH);
|
|
Concessione c = get(target);
|
|
|
|
check(target.path(c.getMongo_id()).request(MediaType.APPLICATION_JSON).delete(),null);
|
|
|
|
Concessione published=getFullPublished(target);
|
|
|
|
check(target.path(published.getMongo_id()).request(MediaType.APPLICATION_JSON).delete(),null);
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
public void republish() throws Exception{
|
|
WebTarget target=target(PATH);
|
|
Concessione published=getFullPublished(target);
|
|
published = unpublish(target,published.getMongo_id());
|
|
System.out.println("Republishing..");
|
|
published=publish(target,published);
|
|
Assert.assertEquals(published.getReport().getStatus(),ValidationStatus.PASSED);
|
|
}
|
|
|
|
|
|
@Test
|
|
public void handlePrecise() throws Exception {
|
|
WebTarget target=target(PATH);
|
|
String id="610415af02ad3d05b5f81ee3";
|
|
publish(target,unpublish(target,id));
|
|
target.path(id).queryParam(InterfaceConstants.Parameters.FORCE,true).request(MediaType.APPLICATION_JSON).delete();
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
public void getById() throws Exception {
|
|
WebTarget target=target(PATH);
|
|
Concessione c = get(target);
|
|
Response resp=target.path(c.getMongo_id()).request(MediaType.APPLICATION_JSON).get();
|
|
Concessione loaded=check(resp,Concessione.class);
|
|
Assert.assertTrue(loaded.getMongo_id()!=null&&!loaded.getMongo_id().isEmpty());
|
|
System.out.println("Got by ID "+loaded);
|
|
}
|
|
|
|
|
|
@Test
|
|
public void update() throws Exception {
|
|
WebTarget target=target(PATH);
|
|
Concessione c = get(target);
|
|
String newTitle="Questo titolo l'ho modificato mo nel test quello proprio apposta pewr questa cosa'";
|
|
c.setNome(newTitle);
|
|
Response resp=target.request(MediaType.APPLICATION_JSON).put(Entity.entity(Serialization.write(c), MediaType.APPLICATION_JSON));
|
|
Assert.assertTrue(check(resp,Concessione.class).getNome().equals(newTitle));
|
|
}
|
|
|
|
@Test
|
|
public void uploadFile() throws Exception {
|
|
WebTarget target=target(PATH);
|
|
Response resp=target.request(MediaType.APPLICATION_JSON).post(Entity.entity(Serialization.write(TestModel.prepareEmptyConcessione()), MediaType.APPLICATION_JSON));
|
|
Concessione c=check(resp,Concessione.class);
|
|
Assert.assertTrue(c.getMongo_id()!=null&&!c.getMongo_id().isEmpty());
|
|
System.out.println("ID IS "+c.getMongo_id());
|
|
|
|
// Insert section
|
|
c.setRelazioneScavo(TestModel.prepareConcessione().getRelazioneScavo());
|
|
// c.getRelazioneScavo().setMongo_id(TestModel.rnd());
|
|
|
|
resp=target.request(MediaType.APPLICATION_JSON).put(Entity.entity(Serialization.write(c), MediaType.APPLICATION_JSON));
|
|
|
|
|
|
|
|
|
|
c=upload(target,c.getMongo_id(),Paths.RELAZIONE,"relazione.pdf");
|
|
assertNotNull(c.getRelazioneScavo().getActualContent());
|
|
assertTrue(c.getRelazioneScavo().getActualContent().size()>0);
|
|
|
|
System.out.println("File is "+c.getRelazioneScavo().getActualContent().get(0));
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
public void publish() throws Exception {
|
|
WebTarget target=target(PATH);
|
|
Concessione published=getFullPublished(target);
|
|
System.out.println("Published : "+published);
|
|
System.out.println("Report is : "+published.getReport());
|
|
assertNotNull(published.getReport());
|
|
assertEquals(ValidationStatus.PASSED,published.getReport().getStatus());
|
|
|
|
assertEquals(published.getImmaginiRappresentative().size(),2);
|
|
assertEquals(published.getPianteFineScavo().size(),1);
|
|
assertNotNull(published.getPosizionamentoScavo().getWmsLink());
|
|
for(LayerConcessione l : published.getPianteFineScavo())
|
|
assertNotNull(l.getWmsLink());
|
|
assertNotNull(published.getCentroidLat());
|
|
assertNotNull(published.getCentroidLong());
|
|
}
|
|
|
|
private Concessione getFullPublished(WebTarget target) throws Exception {
|
|
Concessione c=TestModel.prepareConcessione(1,2);
|
|
|
|
c.setNome("Concessione : publish test");
|
|
|
|
|
|
|
|
// Register new
|
|
c=register(target,c);
|
|
|
|
//Upload files
|
|
upload(target,c.getMongo_id(),Paths.RELAZIONE,"relazione.pdf");
|
|
upload(target,c.getMongo_id(),Paths.POSIZIONAMENTO,"pos.shp","pos.shx");
|
|
|
|
// Clash on workspaces
|
|
upload(target,c.getMongo_id(),Paths.piantaByIndex(0),"pianta.shp","pianta.shx");
|
|
upload(target,c.getMongo_id(),Paths.imgByIndex(0),"immagine.png");
|
|
upload(target,c.getMongo_id(),Paths.imgByIndex(1),"immagine2.png");
|
|
|
|
|
|
|
|
// Immagini
|
|
Concessione published=publish(target, c);
|
|
return published;
|
|
}
|
|
|
|
|
|
}
|