package org.gcube.application.geoportal.clients; import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.statefulMongoConcessioni; import static org.junit.Assert.*; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import org.gcube.application.cms.tests.model.concessioni.TestConcessioniModel; import org.gcube.application.geoportal.client.legacy.ConcessioniManagerI; import org.gcube.application.geoportal.client.utils.Serialization; import org.gcube.application.geoportal.common.model.legacy.*; import org.gcube.application.geoportal.common.model.legacy.report.ValidationReport.ValidationStatus; 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.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.junit.Test; public class StatefulClientTests extends BasicVreTests{ private Concessione publishNew() throws Exception { ConcessioniManagerI manager=statefulMongoConcessioni().build(); StorageUtils storage=new StorageUtils(); Concessione toRegister= TestConcessioniModel.prepareEmptyConcessione(); toRegister.setNome("Mock module"); manager.createNew(toRegister); Concessione source=TestConcessioniModel.prepareConcessione(); UploadedImage toRegisterImg= source.getImmaginiRappresentative().get(0); // TEMP Files are hosted in INFRASTRUCTURE's VOLATILE AREA TempFile toUpload=storage.putOntoStorage( new File(TestConcessioniModel.getBaseFolder(),"immagine1.png"), "immagine.png"); manager.addImmagineRappresentativa(toRegisterImg, toUpload); //Alternative Method InputStreamDescriptor isDesc= new InputStreamDescriptor(new FileInputStream(new File(TestConcessioniModel.getBaseFolder(), "immagine1.png")), "San Mauro_drone totale.JPG"); manager.addImmagineRappresentativa(toRegisterImg, isDesc); source.getRelazioneScavo().setPolicy(AccessPolicy.EMBARGOED); assertEquals(AccessPolicy.EMBARGOED,source.getRelazioneScavo().getPolicy()); //Relazione manager.setRelazioneScavo(source.getRelazioneScavo(), storage.putOntoStorage(new File(TestConcessioniModel.getBaseFolder(),"relazione.pdf"), "relazione_it.pdf"), storage.putOntoStorage(new File(TestConcessioniModel.getBaseFolder(),"relazione.pdf"), "relazione_en.pdf")); assertEquals(AccessPolicy.EMBARGOED,manager.getCurrent().getRelazioneScavo().getPolicy()); //Abstract manager.setAbstractRelazioneScavo( source.getAbstractRelazione(), storage.putOntoStorage(new File(TestConcessioniModel.getBaseFolder(),"relazione.pdf"), "abstract_relazione_it.pdf"), storage.putOntoStorage(new File(TestConcessioniModel.getBaseFolder(),"relazione.pdf"), "abstract_relazione_en.pdf")); // Posizionamento scavo manager.setPosizionamento(source.getPosizionamentoScavo(), storage.putOntoStorage( new File(TestConcessioniModel.getBaseFolder(),"pos.shp"),"pos.shp")); // Piante manager.addPiantaFineScavo(source.getPianteFineScavo().get(0), storage.putOntoStorage( new File(TestConcessioniModel.getBaseFolder(),"pianta.shp"),"pianta.shp")); // new File("/Users/fabioisti/Documents/invio_08_05/Montalto di Castro (VT)_Vulci_Indagini non invasive_Doc. paragr._Va/CONSEGNA_WGS84") // .listFiles((file,name)->{return name.startsWith("Mag_anomalies_WGS84");}))); Concessione toReturn=manager.publish(); assertEquals(AccessPolicy.EMBARGOED,toReturn.getRelazioneScavo().getPolicy()); return toReturn; } @Test public void testRegisterNew() throws RemoteBackendException, FileNotFoundException, Exception { Concessione published=publishNew(); // VARIOUS CHECKS assertNotNull(published.getReport()); assertEquals(published.getReport().getStatus(),ValidationStatus.PASSED); 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()); System.out.println(Serialization.write(published)); System.out.println(Serialization.write(published.getReport())); } @Test public void delete() throws Exception { ConcessioniManagerI manager=statefulMongoConcessioni().build(); StorageUtils storage=new StorageUtils(); manager.createNew(TestConcessioniModel.prepareEmptyConcessione()); manager.delete(); } }