package org.gcube.application.geoportal.common.model; import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.mongoConcessioni; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.io.FileInputStream; import java.util.Collections; import java.util.concurrent.atomic.AtomicLong; 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.report.ValidationReport.ValidationStatus; import org.gcube.application.geoportal.common.rest.AddSectionToConcessioneRequest; import org.gcube.application.geoportal.common.rest.MongoConcessioni; import org.gcube.application.geoportal.common.utils.Files; import org.gcube.application.geoportal.common.utils.StorageUtils; import org.junit.Test; public class StatelessClientTests extends BasicVreTests{ private MongoConcessioni client=mongoConcessioni().build(); @Test public void testCreateNew() throws Exception { Concessione c= client.createNew(TestModel.prepareEmptyConcessione()); assertNotNull(c); assertNotNull(c.getMongo_id()); } @Test public void testDeleteById() throws Exception { Concessione c= client.createNew(TestModel.prepareEmptyConcessione()); client.deleteById(c.getMongo_id()); } @Test public void testList() throws Exception { final AtomicLong counter=new AtomicLong(); long before=System.currentTimeMillis(); client.getList().forEach((Concessione c)-> {counter.addAndGet(1);}); System.out.println("Loaded "+counter+" in "+(System.currentTimeMillis()-before)+" ms"); } @Test public void testReplace() throws Exception { Concessione c= client.createNew(TestModel.prepareEmptyConcessione()); String title="My new shiny Title"; c.setNome(title); Concessione c1=client.replace(c); assertEquals(title, c1.getNome()); } @Test public void testUploadFileSet() throws Exception { Concessione c= client.createNew(TestModel.prepareConcessione()); assertNotNull(c.getRelazioneScavo()); AddSectionToConcessioneRequest request= new AddSectionToConcessioneRequest(Paths.RELAZIONE, Collections.singletonList(new StorageUtils().putOntoStorage( new FileInputStream(Files.getFileFromResources("concessioni/relazione.pdf")), "relazione.pdf"))); c= client.registerFile(c.getMongo_id(), request); assertNotNull(c.getRelazioneScavo().getActualContent()); assertNotNull(c.getRelazioneScavo().getActualContent().get(0)); } @Test public void publish() throws Exception { Concessione c= client.createNew(TestModel.prepareConcessione()); String mongoId=c.getMongo_id(); AddSectionToConcessioneRequest request= new AddSectionToConcessioneRequest(Paths.RELAZIONE, Collections.singletonList(new StorageUtils().putOntoStorage( new FileInputStream(Files.getFileFromResources("concessioni/relazione.pdf")), "relazione.pdf"))); client.registerFile(mongoId, request); request= new AddSectionToConcessioneRequest(Paths.imgByIndex(0), Collections.singletonList(new StorageUtils().putOntoStorage( new FileInputStream(Files.getFileFromResources("concessioni/immagine.png")), "immagine.png"))); client.registerFile(mongoId, request); request= new AddSectionToConcessioneRequest(Paths.POSIZIONAMENTO, Collections.singletonList(new StorageUtils().putOntoStorage( new FileInputStream(Files.getFileFromResources("concessioni/pos.shp")), "pos.shp"))); client.registerFile(mongoId, request); request= new AddSectionToConcessioneRequest(Paths.piantaByIndex(0), Collections.singletonList(new StorageUtils().putOntoStorage( new FileInputStream(Files.getFileFromResources("concessioni/pianta.shp")), "pianta.shp"))); client.registerFile(mongoId, request); c=client.publish(mongoId); assertTrue(c.getReport().getStatus().equals(ValidationStatus.PASSED)); } }