Fix IT by cleaning up all processes not just last one, as the last one may not be the one just created.

This commit is contained in:
Tim Donohue
2022-06-22 13:01:56 -05:00
parent 0e165d6d3c
commit 6f4fa1225b

View File

@@ -9,7 +9,7 @@
package org.dspace.app.rest.csv; package org.dspace.app.rest.csv;
import static com.jayway.jsonpath.JsonPath.read; import static com.jayway.jsonpath.JsonPath.read;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.fileUpload; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.multipart;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@@ -51,7 +51,7 @@ public class CsvSearchExportIT extends AbstractControllerIntegrationTest {
try { try {
String token = getAuthToken(admin.getEmail(), password); String token = getAuthToken(admin.getEmail(), password);
getClient(token).perform(fileUpload("/api/system/scripts/metadata-export-search/processes") getClient(token).perform(multipart("/api/system/scripts/metadata-export-search/processes")
.param("properties", new ObjectMapper().writeValueAsString(restparams))) .param("properties", new ObjectMapper().writeValueAsString(restparams)))
.andExpect(status().isAccepted()) .andExpect(status().isAccepted())
.andExpect(jsonPath("$", .andExpect(jsonPath("$",
@@ -72,7 +72,7 @@ public class CsvSearchExportIT extends AbstractControllerIntegrationTest {
Projection.DEFAULT)).collect( Projection.DEFAULT)).collect(
Collectors.toList()); Collectors.toList());
getClient().perform(fileUpload("/api/system/scripts/metadata-export-search/processes") getClient().perform(multipart("/api/system/scripts/metadata-export-search/processes")
.param("properties", new ObjectMapper().writeValueAsString(restparams))) .param("properties", new ObjectMapper().writeValueAsString(restparams)))
.andExpect(status().isUnauthorized()); .andExpect(status().isUnauthorized());
} }
@@ -87,7 +87,7 @@ public class CsvSearchExportIT extends AbstractControllerIntegrationTest {
Collectors.toList()); Collectors.toList());
String token = getAuthToken(eperson.getEmail(), password); String token = getAuthToken(eperson.getEmail(), password);
getClient(token).perform(fileUpload("/api/system/scripts/metadata-export-search/processes") getClient(token).perform(multipart("/api/system/scripts/metadata-export-search/processes")
.param("properties", new ObjectMapper().writeValueAsString(restparams))) .param("properties", new ObjectMapper().writeValueAsString(restparams)))
.andExpect(status().isForbidden()); .andExpect(status().isForbidden());
} }
@@ -104,12 +104,15 @@ public class CsvSearchExportIT extends AbstractControllerIntegrationTest {
String token = getAuthToken(admin.getEmail(), password); String token = getAuthToken(admin.getEmail(), password);
getClient(token).perform(fileUpload("/api/system/scripts/metadata-export-search/processes") try {
.param("properties", new ObjectMapper().writeValueAsString(restparams))) getClient(token).perform(multipart("/api/system/scripts/metadata-export-search/processes")
.andExpect(status().isAccepted()) .param("properties", new ObjectMapper().writeValueAsString(restparams)))
.andDo(result -> System.out.println(result.getResponse().getContentAsString())) .andExpect(status().isAccepted())
.andDo(result -> idRef.set(read(result.getResponse().getContentAsString(), "$.processId"))); .andDo(result -> System.out.println(result.getResponse().getContentAsString()))
ProcessBuilder.deleteProcess(idRef.get()); .andDo(result -> idRef.set(read(result.getResponse().getContentAsString(), "$.processId")));
} finally {
ProcessBuilder.deleteProcess(idRef.get());
}
} }
@Test @Test
@@ -123,11 +126,15 @@ public class CsvSearchExportIT extends AbstractControllerIntegrationTest {
String token = getAuthToken(admin.getEmail(), password); String token = getAuthToken(admin.getEmail(), password);
getClient(token).perform(fileUpload("/api/system/scripts/metadata-export-search/processes") getClient(token).perform(multipart("/api/system/scripts/metadata-export-search/processes")
.param("properties", new ObjectMapper().writeValueAsString(restparams))) .param("properties", new ObjectMapper().writeValueAsString(restparams)))
.andExpect(status().isInternalServerError()); .andExpect(status().isInternalServerError());
Process process = processService.findAll(context).get(0); // NOTE: While the above call returns 500 (from Discovery), it DOES create a Process.
ProcessBuilder.deleteProcess(process.getID()); // As we cannot retrieve the process ID, we default to just cleaning up ALL Processes.
List<Process> processes = processService.findAll(context);
for (Process process : processes) {
ProcessBuilder.deleteProcess(process.getID());
}
} }
} }