You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
212 lines
8.9 KiB
Java
212 lines
8.9 KiB
Java
package org.gcube.application.geoportal.service.legacy;
|
|
|
|
import static org.junit.Assert.assertNotNull;
|
|
import static org.junit.Assert.assertTrue;
|
|
|
|
import java.io.FileInputStream;
|
|
import java.io.FileNotFoundException;
|
|
import java.io.IOException;
|
|
import java.util.Collection;
|
|
|
|
import javax.persistence.EntityManagerFactory;
|
|
import javax.ws.rs.client.Entity;
|
|
import javax.ws.rs.client.WebTarget;
|
|
import javax.ws.rs.core.Application;
|
|
import javax.ws.rs.core.MediaType;
|
|
import javax.ws.rs.core.Response;
|
|
|
|
import org.gcube.application.geoportal.common.rest.InterfaceConstants;
|
|
import org.gcube.application.geoportal.common.utils.Files;
|
|
import org.gcube.application.geoportal.managers.AbstractRecordManager;
|
|
import org.gcube.application.geoportal.managers.DefatulEMFProvider;
|
|
import org.gcube.application.geoportal.model.concessioni.Concessione;
|
|
import org.gcube.application.geoportal.model.concessioni.LayerConcessione;
|
|
import org.gcube.application.geoportal.model.content.AssociatedContent;
|
|
import org.gcube.application.geoportal.model.content.UploadedImage;
|
|
import org.gcube.application.geoportal.model.fault.ConfigurationException;
|
|
import org.gcube.application.geoportal.model.report.PublicationReport;
|
|
import org.gcube.application.geoportal.model.report.ValidationReport.ValidationStatus;
|
|
import org.gcube.application.geoportal.service.GeoportalService;
|
|
import org.gcube.application.geoportal.service.engine.ImplementationProvider;
|
|
import org.gcube.application.geoportal.service.engine.StorageClientProvider;
|
|
import org.gcube.application.geoportal.service.model.internal.rest.AddSectionToConcessioneRequest;
|
|
import org.gcube.application.geoportal.service.model.internal.rest.AddSectionToConcessioneRequest.SHUBFileDescriptor;
|
|
import org.gcube.application.geoportal.service.model.internal.rest.AddSectionToConcessioneRequest.Section;
|
|
import org.gcube.application.geoportal.service.utils.Serialization;
|
|
import org.gcube.com.fasterxml.jackson.core.JsonProcessingException;
|
|
import org.gcube.contentmanagement.blobstorage.service.IClient;
|
|
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
|
|
import org.glassfish.jersey.test.JerseyTest;
|
|
import org.junit.BeforeClass;
|
|
import org.junit.Test;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
@Slf4j
|
|
public class ConcessioniTest extends JerseyTest {
|
|
|
|
|
|
@Override
|
|
protected Application configure() {
|
|
return new GeoportalService();
|
|
}
|
|
|
|
|
|
|
|
@BeforeClass
|
|
public static void init() {
|
|
String scope="/gcube/devNext/NextNext";
|
|
AbstractRecordManager.setDefaultProvider(new DefatulEMFProvider(){
|
|
|
|
@Override
|
|
public EntityManagerFactory getFactory() {
|
|
// System.err.println("***********************SETTING DEBUG CONTEXT******************");
|
|
TokenSetter.set(scope);
|
|
return super.getFactory();
|
|
}
|
|
});
|
|
|
|
ImplementationProvider.get().setStorageProvider(new StorageClientProvider() {
|
|
@Override
|
|
public IClient getObject() throws ConfigurationException {
|
|
TokenSetter.set(scope);
|
|
return super.getObject();
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
@Test
|
|
public void list() throws JsonProcessingException, IOException{
|
|
WebTarget target=target(InterfaceConstants.Methods.CONCESSIONI);
|
|
System.err.println(target.getUri());
|
|
|
|
Collection coll=target.request(MediaType.APPLICATION_JSON).get(Collection.class);
|
|
System.out.println("Size of collection is "+coll.size());
|
|
System.out.println("Iterating through objects.. ");
|
|
for(Object o:coll) {
|
|
System.out.println("Object class is "+o.getClass());
|
|
Concessione c=Serialization.read(o.toString(), Concessione.class);
|
|
System.out.println("Concessione is : "+c.asJson());
|
|
}
|
|
|
|
}
|
|
|
|
@Test
|
|
public void failPublish() throws com.fasterxml.jackson.core.JsonProcessingException, IOException {
|
|
Concessione toCreate=TestModel.prepareEmptyConcessione();
|
|
|
|
Concessione conc=pushConcessione(toCreate);
|
|
System.out.println(publish(conc.getId()+"").prettyPrint());
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
public void createNew() throws IOException {
|
|
Concessione toCreate=TestModel.prepareEmptyConcessione();
|
|
|
|
pushConcessione(toCreate);
|
|
|
|
}
|
|
@Test
|
|
public void publishNew() throws IOException, RemoteBackendException, ConfigurationException {
|
|
Concessione toCreate=TestModel.prepareEmptyConcessione();
|
|
Concessione registered = pushConcessione(toCreate);
|
|
System.out.println("Registered at "+registered.asJson());
|
|
Concessione fullTemplate=TestModel.prepareConcessione();
|
|
|
|
//Push Relazione
|
|
publishSection(registered.getId()+"",formRequest(Section.RELAZIONE,fullTemplate.getRelazioneScavo(),"concessioni/relazione.pdf"));
|
|
assertNotNull(getById(registered.getId()+"").getRelazioneScavo());
|
|
|
|
//Push Immagini
|
|
for(UploadedImage img:fullTemplate.getImmaginiRappresentative())
|
|
publishSection(registered.getId()+"",formRequest(Section.UPLOADED_IMG,img,"concessioni/immagine.png"));
|
|
assertNotNull(getById(registered.getId()+"").getImmaginiRappresentative());
|
|
assertTrue(getById(registered.getId()+"").getImmaginiRappresentative().size()==fullTemplate.getImmaginiRappresentative().size());
|
|
|
|
//Push Posizinamento
|
|
publishSection(registered.getId()+"",formRequest(Section.POSIZIONAMENTO,fullTemplate.getPosizionamentoScavo(),"concessioni/pos.dbf","concessioni/pos.shp"));
|
|
assertNotNull(getById(registered.getId()+"").getPosizionamentoScavo());
|
|
|
|
//Push piante
|
|
for(LayerConcessione l:fullTemplate.getPianteFineScavo())
|
|
publishSection(registered.getId()+"",formRequest(Section.PIANTA,l,"concessioni/pos.dbf","concessioni/pos.shp"));
|
|
assertNotNull(getById(registered.getId()+"").getPianteFineScavo());
|
|
assertTrue(getById(registered.getId()+"").getPianteFineScavo().size()==fullTemplate.getPianteFineScavo().size());
|
|
|
|
|
|
|
|
Concessione reloaded = getById(registered.getId()+"");
|
|
System.out.println("Goind to publish "+reloaded.asJson());
|
|
PublicationReport report=publish(registered.getId()+"");
|
|
System.out.println("REPORT IS "+report.prettyPrint()+"");
|
|
// System.out.println("Concessione is "+report.getTheRecord().asJson());
|
|
assertTrue(report.getStatus().equals(ValidationStatus.PASSED));
|
|
}
|
|
|
|
|
|
// ACTUAL METHODS
|
|
|
|
|
|
private PublicationReport publish(String id) throws com.fasterxml.jackson.core.JsonProcessingException, IOException {
|
|
WebTarget target=target(InterfaceConstants.Methods.CONCESSIONI);
|
|
Response resp=target.path("publish").path(id).request(MediaType.APPLICATION_JSON).put(Entity.entity("sopmething", MediaType.APPLICATION_JSON));
|
|
if(resp.getStatus()<200||resp.getStatus()>=300)
|
|
System.err.println("RESP STATUS IS "+resp.getStatus());
|
|
String resString=resp.readEntity(String.class);
|
|
System.out.println("Resp String is "+resString);
|
|
PublicationReport registered=Serialization.read(resString, PublicationReport.class);
|
|
System.out.println("Registered concessione at : "+registered);
|
|
return registered;
|
|
}
|
|
|
|
private AddSectionToConcessioneRequest formRequest(Section section,AssociatedContent content,String... files) throws RemoteBackendException, FileNotFoundException, ConfigurationException {
|
|
AddSectionToConcessioneRequest toReturn=new AddSectionToConcessioneRequest();
|
|
toReturn.setSection(section);
|
|
toReturn.setToRegister(content);
|
|
for(String f:files) {
|
|
SHUBFileDescriptor desc=new SHUBFileDescriptor();
|
|
desc.setFilename(f.substring(f.lastIndexOf("/")));
|
|
String sId=ImplementationProvider.get().getStorageProvider().store(
|
|
new FileInputStream(Files.getFileFromResources(f)));
|
|
desc.setShubID(sId);
|
|
toReturn.getStreams().add(desc);
|
|
}
|
|
return toReturn;
|
|
}
|
|
|
|
private Response publishSection(String id, AddSectionToConcessioneRequest request) {
|
|
WebTarget target=target(InterfaceConstants.Methods.CONCESSIONI);
|
|
Response resp=target.path("section").path(id).request(MediaType.APPLICATION_JSON).put(Entity.entity(request, MediaType.APPLICATION_JSON));
|
|
if(resp.getStatus()<200||resp.getStatus()>=300) {
|
|
System.err.println("RESP STATUS IS "+resp.getStatus());
|
|
System.err.println("RESP IS "+resp.readEntity(String.class));
|
|
}
|
|
return resp;
|
|
}
|
|
|
|
private Concessione pushConcessione(Concessione c) throws com.fasterxml.jackson.core.JsonProcessingException, IOException {
|
|
WebTarget target=target(InterfaceConstants.Methods.CONCESSIONI);
|
|
Response resp=target.request(MediaType.APPLICATION_JSON).put(Entity.entity(c.asJson(), MediaType.APPLICATION_JSON));
|
|
String resString=resp.readEntity(String.class);
|
|
System.out.println("Resp String is "+resString);
|
|
Concessione registered=Serialization.read(resString, Concessione.class);
|
|
System.out.println("Registered concessione at : "+registered);
|
|
return registered;
|
|
}
|
|
|
|
private Concessione getById(String id) throws com.fasterxml.jackson.core.JsonProcessingException, IOException {
|
|
WebTarget target=target(InterfaceConstants.Methods.CONCESSIONI);
|
|
Response resp=target.path(id).request(MediaType.APPLICATION_JSON).get();
|
|
if(resp.getStatus()<200||resp.getStatus()>=300)
|
|
System.err.println("RESP STATUS IS "+resp.getStatus());
|
|
String resString=resp.readEntity(String.class);
|
|
System.out.println("Resp String is "+resString);
|
|
return Serialization.read(resString, Concessione.class);
|
|
}
|
|
|
|
|
|
}
|