This repository has been archived on 2021-09-09. You can view files and clone it, but cannot push or open issues or pull requests.
geoportal-service/src/test/java/org/gcube/application/geoportal/service/ConcessioniOverMongoTest.java

159 lines
6.2 KiB
Java

package org.gcube.application.geoportal.service;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.io.FileInputStream;
import java.util.Collections;
import java.util.List;
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 org.gcube.application.geoportal.common.model.legacy.Concessione;
import org.gcube.application.geoportal.common.model.legacy.Concessione.Paths;
import org.gcube.application.geoportal.common.rest.AddSectionToConcessioneRequest;
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.legacy.TokenSetter;
import org.gcube.application.geoportal.service.utils.Serialization;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class ConcessioniOverMongoTest extends BasicServiceTestUnit{
private static final String PATH="mongo-concessioni";
private static final String PUBLISH_PATH="publish";
private static final String FILES_PATH="registerFiles";
@Before
public void setContext() {
TokenSetter.set("/gcube/devsec/devVRE");
}
@Test
public void list() {
WebTarget target=target(PATH);
System.out.println(target.request(MediaType.APPLICATION_JSON).get(List.class));
}
@Test
public void createNew() throws Exception {
WebTarget target=target(PATH);
Concessione conc=TestModel.prepareConcessione();
Response resp=target.request(MediaType.APPLICATION_JSON).post(Entity.entity(Serialization.write(conc), 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());
}
@Test
public void delete() throws Exception {
WebTarget target=target(PATH);
Concessione conc=TestModel.prepareConcessione();
Response resp=target.request(MediaType.APPLICATION_JSON).post(Entity.entity(Serialization.write(conc), MediaType.APPLICATION_JSON));
Concessione c=check(resp,Concessione.class);
System.out.println("ID IS "+c.getMongo_id());
Assert.assertTrue(c.getMongo_id()!=null&&!c.getMongo_id().isEmpty());
resp=target.path(c.getMongo_id()).request(MediaType.APPLICATION_JSON).delete();
check(resp,null);
}
@Test
public void getById() throws Exception {
WebTarget target=target(PATH);
Concessione conc=TestModel.prepareConcessione();
Response resp=target.request(MediaType.APPLICATION_JSON).post(Entity.entity(Serialization.write(conc), MediaType.APPLICATION_JSON));
Concessione c=check(resp,Concessione.class);
Assert.assertTrue(c.getMongo_id()!=null&&!c.getMongo_id().isEmpty());
resp=target.path(c.getMongo_id()).request(MediaType.APPLICATION_JSON).get();
Concessione loaded=check(resp,Concessione.class);
System.out.println("Got by ID "+loaded);
Assert.assertTrue(loaded.getMongo_id()!=null&&!loaded.getMongo_id().isEmpty());
}
@Test
public void update() throws Exception {
WebTarget target=target(PATH);
Concessione conc=TestModel.prepareConcessione();
Response resp=target.request(MediaType.APPLICATION_JSON).post(Entity.entity(Serialization.write(conc), MediaType.APPLICATION_JSON));
Concessione c=check(resp,Concessione.class);
resp=target.path(c.getMongo_id()).request(MediaType.APPLICATION_JSON).get();
Concessione loaded=check(resp,Concessione.class);
Assert.assertTrue(c.getMongo_id()!=null&&!c.getMongo_id().isEmpty());
System.out.println("Modifying "+loaded);
String newTitle="Questo titolo l'ho modificato mo'";
loaded.setNome(newTitle);
resp=target.request(MediaType.APPLICATION_JSON).put(Entity.entity(Serialization.write(loaded), 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=check(resp,Concessione.class);
// Add file
TempFile f=new StorageUtils().putOntoStorage(new FileInputStream(Files.getFileFromResources("concessioni/relazione.pdf")), "relazione.pdf");
AddSectionToConcessioneRequest request=new AddSectionToConcessioneRequest();
request.setDestinationPath(Paths.RELAZIONE);
request.setStreams(Collections.singletonList(f));
resp=target.path(FILES_PATH).path(c.getMongo_id()).request(MediaType.APPLICATION_JSON).post(Entity.entity(Serialization.write(request), MediaType.APPLICATION_JSON));
c=check(resp,Concessione.class);
assertNotNull(c.getRelazioneScavo().getActualContent());
assertTrue(c.getRelazioneScavo().getActualContent().size()>0);
System.out.println("ADDED FILE TO "+c);
}
@Test
public void publish() throws Exception {
WebTarget target=target(PATH);
Concessione conc=TestModel.prepareConcessione();
Response resp=target.request(MediaType.APPLICATION_JSON).post(Entity.entity(Serialization.write(conc), MediaType.APPLICATION_JSON));
Concessione c=check(resp,Concessione.class);
// System.out.println("ID IS "+c.getMongo_id());
resp=target.path(c.getMongo_id()).request(MediaType.APPLICATION_JSON).get();
Concessione loaded=check(resp,Concessione.class);
System.out.println("Modifying "+loaded);
String newTitle="Questo titolo l'ho modificato mo'";
loaded.setNome(newTitle);
resp=target.path(PUBLISH_PATH).path(c.getMongo_id()).request(MediaType.APPLICATION_JSON).
put(Entity.entity(Serialization.write(conc), MediaType.APPLICATION_JSON));
// TODO Validation
// Assert.assertTrue(check(resp,Concessione.class).getNome().equals(newTitle));
}
}