Fixes after master merge

This commit is contained in:
Raf Ponsaerts
2020-05-28 09:41:58 +02:00
parent 2a554cbd14
commit bc7cf1484c
2 changed files with 88 additions and 34 deletions

View File

@@ -7,6 +7,7 @@
*/ */
package org.dspace.app.rest.repository; package org.dspace.app.rest.repository;
import java.io.IOException;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@@ -14,6 +15,7 @@ import java.util.stream.Collectors;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.dspace.app.rest.converter.ConverterService; import org.dspace.app.rest.converter.ConverterService;
import org.dspace.app.rest.exception.RepositoryMethodNotImplementedException;
import org.dspace.app.rest.model.BitstreamRest; import org.dspace.app.rest.model.BitstreamRest;
import org.dspace.app.rest.model.ProcessFileWrapperRest; import org.dspace.app.rest.model.ProcessFileWrapperRest;
import org.dspace.app.rest.model.ProcessRest; import org.dspace.app.rest.model.ProcessRest;
@@ -167,6 +169,18 @@ public class ProcessRestRepository extends DSpaceRestRepository<ProcessRest, Int
return converterService.toRest(bitstream, Projection.DEFAULT); return converterService.toRest(bitstream, Projection.DEFAULT);
} }
@Override
protected void delete(Context context, Integer integer)
throws AuthorizeException, RepositoryMethodNotImplementedException {
try {
processService.delete(context, processService.find(context, integer));
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override @Override
public Class<ProcessRest> getDomainClass() { public Class<ProcessRest> getDomainClass() {
return ProcessRest.class; return ProcessRest.class;

View File

@@ -10,6 +10,7 @@ package org.dspace.app.rest;
import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.containsInAnyOrder;
import static org.hamcrest.Matchers.hasItem; import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.is;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.fileUpload; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.fileUpload;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
@@ -21,8 +22,10 @@ import java.sql.SQLException;
import java.util.Arrays; import java.util.Arrays;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson; import com.google.gson.Gson;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.dspace.app.rest.builder.CollectionBuilder; import org.dspace.app.rest.builder.CollectionBuilder;
@@ -50,6 +53,7 @@ import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.mock.web.MockMultipartFile; import org.springframework.mock.web.MockMultipartFile;
import org.springframework.test.web.servlet.MvcResult;
public class ScriptRestRepositoryIT extends AbstractControllerIntegrationTest { public class ScriptRestRepositoryIT extends AbstractControllerIntegrationTest {
@@ -174,12 +178,22 @@ public class ScriptRestRepositoryIT extends AbstractControllerIntegrationTest {
String token = getAuthToken(admin.getEmail(), password); String token = getAuthToken(admin.getEmail(), password);
getClient(token).perform(post("/api/system/scripts/mock-script/processes").contentType("multipart/form-data")) MvcResult mvcResult = getClient(token)
.andExpect(status().isAccepted()) .perform(post("/api/system/scripts/mock-script/processes").contentType("multipart/form-data"))
.andExpect(jsonPath("$", is( .andExpect(status().isAccepted())
ProcessMatcher.matchProcess("mock-script", .andExpect(jsonPath("$", is(
String.valueOf(admin.getID()), new LinkedList<>(), ProcessMatcher.matchProcess("mock-script",
ProcessStatus.FAILED)))); String.valueOf(admin.getID()), new LinkedList<>(),
ProcessStatus.FAILED)))).andReturn();
ObjectMapper mapper = new ObjectMapper();
String content = mvcResult.getResponse().getContentAsString();
Map<String, Object> map = mapper.readValue(content, Map.class);
Integer processId = Integer.valueOf(String.valueOf(map.get("processId")));
getClient(token).perform(delete("/api/system/processes/" + processId));
} }
@Test @Test
@@ -207,14 +221,22 @@ public class ScriptRestRepositoryIT extends AbstractControllerIntegrationTest {
String token = getAuthToken(admin.getEmail(), password); String token = getAuthToken(admin.getEmail(), password);
getClient(token).perform(post("/api/system/scripts/mock-script/processes").contentType("multipart/form-data") MvcResult mvcResult = getClient(token)
.param("properties", .perform(post("/api/system/scripts/mock-script/processes").contentType("multipart/form-data")
new Gson().toJson(list))) .param("properties",
.andExpect(status().isAccepted()) new Gson().toJson(list)))
.andExpect(jsonPath("$", is( .andExpect(status().isAccepted())
ProcessMatcher.matchProcess("mock-script", .andExpect(jsonPath("$", is(
String.valueOf(admin.getID()), parameters, ProcessMatcher.matchProcess("mock-script",
ProcessStatus.FAILED)))); String.valueOf(admin.getID()), parameters,
ProcessStatus.FAILED)))).andReturn();
ObjectMapper mapper = new ObjectMapper();
String content = mvcResult.getResponse().getContentAsString();
Map<String, Object> map = mapper.readValue(content, Map.class);
Integer processId = Integer.valueOf(String.valueOf(map.get("processId")));
getClient(token).perform(delete("/api/system/processes/" + processId));
} }
@Test @Test
@@ -244,15 +266,24 @@ public class ScriptRestRepositoryIT extends AbstractControllerIntegrationTest {
ProcessStatus.RUNNING, ProcessStatus.RUNNING,
ProcessStatus.COMPLETED)); ProcessStatus.COMPLETED));
getClient(token).perform(post("/api/system/scripts/mock-script/processes").contentType("multipart/form-data") MvcResult mvcResult = getClient(token)
.param("properties", .perform(post("/api/system/scripts/mock-script/processes").contentType("multipart/form-data")
new Gson().toJson(list))) .param("properties",
.andExpect(status().isAccepted()) new Gson().toJson(list)))
.andExpect(jsonPath("$", is( .andExpect(status().isAccepted())
ProcessMatcher.matchProcess("mock-script", .andExpect(jsonPath("$", is(
String.valueOf(admin.getID()), ProcessMatcher.matchProcess("mock-script",
parameters, String.valueOf(admin.getID()),
acceptableProcessStatuses)))); parameters,
acceptableProcessStatuses)))).andReturn();
ObjectMapper mapper = new ObjectMapper();
String content = mvcResult.getResponse().getContentAsString();
Map<String, Object> map = mapper.readValue(content, Map.class);
Integer processId = Integer.valueOf(String.valueOf(map.get("processId")));
getClient(token).perform(delete("/api/system/processes/" + processId));
} }
@@ -293,9 +324,9 @@ public class ScriptRestRepositoryIT extends AbstractControllerIntegrationTest {
String bitstreamContent = "Hello, World!"; String bitstreamContent = "Hello, World!";
MockMultipartFile bitstreamFile = new MockMultipartFile("file", MockMultipartFile bitstreamFile = new MockMultipartFile("file",
"hello.txt", MediaType.TEXT_PLAIN_VALUE, "helloProcessFile.txt", MediaType.TEXT_PLAIN_VALUE,
bitstreamContent.getBytes()); bitstreamContent.getBytes());
parameters.add(new DSpaceCommandLineParameter("-f", "hello.txt")); parameters.add(new DSpaceCommandLineParameter("-f", "helloProcessFile.txt"));
List<ParameterValueRest> list = parameters.stream() List<ParameterValueRest> list = parameters.stream()
.map(dSpaceCommandLineParameter -> dSpaceRunnableParameterConverter .map(dSpaceCommandLineParameter -> dSpaceRunnableParameterConverter
@@ -308,15 +339,24 @@ public class ScriptRestRepositoryIT extends AbstractControllerIntegrationTest {
ProcessStatus.RUNNING, ProcessStatus.RUNNING,
ProcessStatus.COMPLETED)); ProcessStatus.COMPLETED));
getClient(token).perform(fileUpload("/api/system/scripts/mock-script/processes").file(bitstreamFile) MvcResult mvcResult = getClient(token)
.param("properties", .perform(fileUpload("/api/system/scripts/mock-script/processes").file(bitstreamFile)
new Gson().toJson(list))) .param("properties",
.andExpect(status().isAccepted()) new Gson().toJson(list)))
.andExpect(jsonPath("$", is( .andExpect(status().isAccepted())
ProcessMatcher.matchProcess("mock-script", .andExpect(jsonPath("$", is(
String.valueOf(admin.getID()), ProcessMatcher.matchProcess("mock-script",
parameters, String.valueOf(admin.getID()),
acceptableProcessStatuses)))); parameters,
acceptableProcessStatuses)))).andReturn();
ObjectMapper mapper = new ObjectMapper();
String content = mvcResult.getResponse().getContentAsString();
Map<String, Object> map = mapper.readValue(content, Map.class);
Integer processId = Integer.valueOf(String.valueOf(map.get("processId")));
getClient(token).perform(delete("/api/system/processes/" + processId));
} }