Skip to content
Snippets Groups Projects
Commit 5108f1c2 authored by Nicola Fulvio Calabria's avatar Nicola Fulvio Calabria
Browse files

Added unit tests for PutFileController

parent 2b2915e0
No related branches found
No related tags found
No related merge requests found
Pipeline #1178 passed
package it.inaf.ia2.transfer.controller;
import it.inaf.ia2.transfer.persistence.FileDAO;
import it.inaf.ia2.transfer.persistence.JobDAO;
import it.inaf.ia2.transfer.persistence.ListOfFilesDAO;
//import it.inaf.oats.vospace.persistence.JobDAO;
//import net.ivoa.xml.uws.v1.JobSummary;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.util.Collections;
import java.util.Optional;
import java.util.UUID;
import net.ivoa.xml.uws.v1.ExecutionPhase;
import org.assertj.core.util.Files;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
......@@ -39,8 +40,8 @@ public class PutFileControllerTest {
@MockBean
private FileDAO fileDao;
//@MockBean
//private JobDAO jobDao;
@MockBean
private JobDAO jobDAO;
@MockBean
private ListOfFilesDAO listOfFilesDAO;
......@@ -68,6 +69,74 @@ public class PutFileControllerTest {
assertTrue(file.delete());
}
@Test
public void putGenericFileWithNameConflict() throws Exception {
String fileName = "pippoFile";
createBaseFileInfo(fileName);
MockMultipartFile fakeFile = new MockMultipartFile("file", "test.txt", "text/plain", "content".getBytes());
mockMvc.perform(putMultipart("/path/to/test.txt")
.file(fakeFile))
.andDo(print())
.andExpect(status().isOk());
File file = Path.of("/tmp", fileName).toFile();
assertTrue(file.exists());
assertEquals("content", Files.contentOf(file, StandardCharsets.UTF_8));
MockMultipartFile fakeFile2 = new MockMultipartFile("file", "test.txt", "text/plain", "content2".getBytes());
mockMvc.perform(putMultipart("/path/to/test.txt")
.file(fakeFile2))
.andDo(print())
.andExpect(status().isOk());
File file2 = Path.of("/tmp", fileName+"-1").toFile();
assertTrue(file.exists());
assertEquals("content2", Files.contentOf(file2, StandardCharsets.UTF_8));
assertTrue(file.delete());
assertTrue(file2.delete());
}
@Test
public void putGenericFileWithJobId() throws Exception {
when(jobDAO.isJobExisting("pippo10")).thenReturn(false);
when(jobDAO.isJobExisting("pippo5")).thenReturn(true);
String randomFileName = UUID.randomUUID().toString();
createBaseFileInfo(randomFileName);
MockMultipartFile fakeFile = new MockMultipartFile("file", "test.txt", "text/plain", "content".getBytes());
// Try with invalid jobid
mockMvc.perform(putMultipart("/path/to/test.txt")
.file(fakeFile).param("jobid", "pippo10"))
.andDo(print())
.andExpect(status().is4xxClientError());
verify(jobDAO, times(1)).isJobExisting(eq("pippo10"));
// Retry with valid jobid
mockMvc.perform(putMultipart("/path/to/test.txt")
.file(fakeFile).param("jobid", "pippo5"))
.andDo(print())
.andExpect(status().is2xxSuccessful());
verify(jobDAO, times(1)).isJobExisting(eq("pippo5"));
verify(jobDAO, times(1)).updateJobPhase(eq(ExecutionPhase.COMPLETED), any());
File file = Path.of("/tmp", randomFileName).toFile();
assertTrue(file.exists());
assertEquals("content", Files.contentOf(file, StandardCharsets.UTF_8));
assertTrue(file.delete());
}
@Test
public void putListOfFiles() throws Exception {
......
......@@ -20,6 +20,7 @@ public class JobDAOTest {
@Autowired
private DataSource dataSource;
private JobDAO dao;
@BeforeEach
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment