Loading src/main/java/it/inaf/oats/vospace/FileServiceClient.java +4 −3 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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(); Loading @@ -91,7 +92,7 @@ public class FileServiceClient { }, new Object[]{}); } private static class ArchiveRequest { public static class ArchiveRequest { private String type; private String jobId; Loading src/test/java/it/inaf/oats/vospace/FileServiceClientTest.java +25 −4 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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 Loading Loading @@ -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); Loading @@ -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); } } } Loading
src/main/java/it/inaf/oats/vospace/FileServiceClient.java +4 −3 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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(); Loading @@ -91,7 +92,7 @@ public class FileServiceClient { }, new Object[]{}); } private static class ArchiveRequest { public static class ArchiveRequest { private String type; private String jobId; Loading
src/test/java/it/inaf/oats/vospace/FileServiceClientTest.java +25 −4 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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 Loading Loading @@ -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); Loading @@ -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); } } }