diff --git a/src/test/java/it/inaf/ia2/transfer/service/ArchiveServiceTest.java b/src/test/java/it/inaf/ia2/transfer/service/ArchiveServiceTest.java index fb1a8adfa849845721715633927a86856fef4f22..f145c45d7c6f18a399cb4e4583694de9d58fe123 100644 --- a/src/test/java/it/inaf/ia2/transfer/service/ArchiveServiceTest.java +++ b/src/test/java/it/inaf/ia2/transfer/service/ArchiveServiceTest.java @@ -11,6 +11,7 @@ import it.inaf.ia2.transfer.persistence.JobDAO; import it.inaf.ia2.transfer.persistence.LocationDAO; import it.inaf.ia2.transfer.persistence.model.FileInfo; import it.inaf.oats.vospace.exception.QuotaExceededException; +import it.inaf.oats.vospace.parent.exchange.ArchiveEntryDescriptor; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; @@ -38,6 +39,7 @@ import org.kamranzafar.jtar.TarEntry; import org.kamranzafar.jtar.TarInputStream; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; +import org.mockito.Mockito; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -47,6 +49,7 @@ import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.boot.test.util.TestPropertyValues; import org.springframework.context.ApplicationContextInitializer; import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.context.annotation.Primary; import org.springframework.http.HttpMethod; import org.springframework.http.client.ClientHttpResponse; import org.springframework.test.context.ContextConfiguration; @@ -70,9 +73,6 @@ public class ArchiveServiceTest { @MockBean private RestTemplate restTemplate; - - @MockBean - private HttpServletRequest servletRequest; @MockBean private AuthorizationService authorizationService; @@ -93,7 +93,6 @@ public class ArchiveServiceTest { } // TODO: refactor tests - /* @Test public void testTarGeneration() throws Exception { @@ -115,7 +114,6 @@ public class ArchiveServiceTest { }); } - @Test public void testZipGeneration() throws Exception { @@ -137,7 +135,6 @@ public class ArchiveServiceTest { }); } - @Test public void testArchiveQuotaExceeded() throws Exception { @@ -145,8 +142,10 @@ public class ArchiveServiceTest { job.setPrincipal(new TokenPrincipal("user2", "token2")); job.setJobId("job2"); job.setType(ArchiveJob.Type.ZIP); - job.setVosPaths(Arrays.asList("/ignore")); - + job.setEntryDescriptors(List.of(this.getArchiveEntryDescriptor("/ignore"))); + + HttpServletRequest servletRequest = Mockito.mock(HttpServletRequest.class); + when(servletRequest.getUserPrincipal()).thenReturn(job.getPrincipal()); File user2Dir = tmpDir.toPath().resolve("user2").toFile(); @@ -165,7 +164,7 @@ public class ArchiveServiceTest { archiveService.createArchive(job, servletRequest); }); } - + private static abstract class TestArchiveHandler<I extends InputStream, E> { private final I is; @@ -202,8 +201,14 @@ public class ArchiveServiceTest { job.setPrincipal(new TokenPrincipal("user1", "token1")); job.setJobId("abcdef"); job.setType(type); - job.setVosPaths(Arrays.asList(parent + "/dir1", parent + "/dir2", parent + "/file6")); - + job.setEntryDescriptors(List.of( + this.getArchiveEntryDescriptor(parent + "/dir1"), + this.getArchiveEntryDescriptor(parent + "/dir2"), + this.getArchiveEntryDescriptor(parent + "/file6") + )); + + HttpServletRequest servletRequest = Mockito.mock(HttpServletRequest.class); + when(servletRequest.getUserPrincipal()).thenReturn(job.getPrincipal()); when(authorizationService.isDownloadable(any(), any())).thenReturn(true); @@ -251,7 +256,7 @@ public class ArchiveServiceTest { TestArchiveHandler<I, E> testArchiveHandler = testArchiveGetter.apply(new FileInputStream(result)); - try ( InputStream is = testArchiveHandler.getInputStream()) { + try (InputStream is = testArchiveHandler.getInputStream()) { E entry; while ((entry = testArchiveHandler.getNextEntry()) != null) { assertFalse(i >= expectedSequence.size(), "Found more entries than in expected sequence"); @@ -288,12 +293,15 @@ public class ArchiveServiceTest { private File createFile(File parent, String path) throws Exception { File file = parent.toPath().resolve(path).toFile(); - file.getParentFile().mkdirs(); + file.getParentFile().mkdirs(); file.createNewFile(); Files.write(file.toPath(), "some data".getBytes()); return file; } - */ + + private ArchiveEntryDescriptor getArchiveEntryDescriptor(String vosPath) { + return new ArchiveEntryDescriptor(vosPath); + } /** * @TestPropertySource annotation can't be used in this test because we need