Skip to content
Snippets Groups Projects
Commit 728d2057 authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Fixed issue in paths of tar/zip archive requests

parent bc75a9c1
No related branches found
No related tags found
No related merge requests found
......@@ -45,7 +45,8 @@ public class FileServiceClient {
throw new IllegalArgumentException("Target size is " + transfer.getTarget().size());
}
String target = transfer.getTarget().get(0);
String target = transfer.getTarget().get(0)
.substring("vos://".length() + authority.length());
String viewUri = transfer.getView().getUri();
......@@ -65,7 +66,7 @@ public class FileServiceClient {
if (vosPaths.isEmpty()) {
// Add target path
vosPaths.add(target.substring("vos://".length() + authority.length()));
vosPaths.add(target);
}
ArchiveRequest archiveRequest = new ArchiveRequest();
......@@ -91,7 +92,7 @@ public class FileServiceClient {
}, new Object[]{});
}
private static class ArchiveRequest {
public static class ArchiveRequest {
private String type;
private String jobId;
......
......@@ -5,10 +5,14 @@
*/
package it.inaf.oats.vospace;
import com.fasterxml.jackson.databind.ObjectMapper;
import it.inaf.ia2.aa.data.User;
import it.inaf.oats.vospace.FileServiceClient.ArchiveRequest;
import it.inaf.oats.vospace.datamodel.Views;
import it.inaf.oats.vospace.exception.InvalidArgumentException;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.net.URI;
import java.util.Arrays;
import javax.servlet.http.HttpServletRequest;
......@@ -44,6 +48,8 @@ import org.springframework.web.client.RestTemplate;
@MockitoSettings(strictness = Strictness.LENIENT)
public class FileServiceClientTest {
private static final ObjectMapper MAPPER = new ObjectMapper();
@Mock
private RestTemplate restTemplate;
......@@ -88,7 +94,10 @@ public class FileServiceClientTest {
view.setUri(Views.ZIP_VIEW_URI);
transfer.setView(view);
testStartArchiveJob(transfer);
ArchiveRequest archiveRequest = testStartArchiveJob(transfer);
assertEquals(1, archiveRequest.getPaths().size());
assertEquals("/mydir", archiveRequest.getPaths().get(0));
}
@Test
......@@ -146,20 +155,26 @@ public class FileServiceClientTest {
param2.setValue("file2");
view.getParam().add(param2);
testStartArchiveJob(transfer);
ArchiveRequest archiveRequest = testStartArchiveJob(transfer);
assertEquals(2, archiveRequest.getPaths().size());
assertEquals("/parent_dir/file1", archiveRequest.getPaths().get(0));
assertEquals("/parent_dir/file2", archiveRequest.getPaths().get(1));
}
private void testStartArchiveJob(Transfer transfer) {
private ArchiveRequest testStartArchiveJob(Transfer transfer) {
User user = mock(User.class);
when(user.getAccessToken()).thenReturn("<token>");
when(request.getUserPrincipal()).thenReturn(user);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
doAnswer(invocation -> {
RequestCallback requestCallback = invocation.getArgument(2);
ClientHttpRequest mockedRequest = mock(ClientHttpRequest.class);
HttpHeaders mockedRequestHeaders = mock(HttpHeaders.class);
when(mockedRequest.getBody()).thenReturn(new ByteArrayOutputStream());
when(mockedRequest.getBody()).thenReturn(baos);
when(mockedRequest.getHeaders()).thenReturn(mockedRequestHeaders);
requestCallback.doWithRequest(mockedRequest);
......@@ -176,5 +191,11 @@ public class FileServiceClientTest {
String redirect = fileServiceClient.startArchiveJob(transfer, "job123");
assertEquals("http://file-service/archive/result", redirect);
try {
return MAPPER.readValue(baos.toByteArray(), ArchiveRequest.class);
} catch (IOException ex) {
throw new UncheckedIOException(ex);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment