package jnpf.upload.controller; import org.dromara.x.file.storage.core.FileInfo; import org.dromara.x.file.storage.core.FileStorageService; import org.dromara.x.file.storage.core.upload.UploadPretreatment; import org.junit.Test; import org.springframework.web.multipart.MultipartFile; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; public class FileUploadControllerTest { @Test public void replaceFileKeepsStorageFilename() { FileStorageService storage = mock(FileStorageService.class); UploadPretreatment upload = mock(UploadPretreatment.class); MultipartFile file = mock(MultipartFile.class); FileInfo stored = new FileInfo(); stored.setFilename("template.docx"); when(storage.of(file)).thenReturn(upload); when(upload.setPath("WebAnnexFile/")).thenReturn(upload); when(upload.setOriginalFilename("template.docx")).thenReturn(upload); when(upload.setSaveFilename("template.docx")).thenReturn(upload); when(upload.upload()).thenReturn(stored); assertTrue(new FileUploadController(storage).replaceFile(file, "WebAnnexFile/", "template.docx")); verify(upload).setSaveFilename("template.docx"); } @Test public void replaceFileRejectsUnexpectedStorageFilename() { FileStorageService storage = mock(FileStorageService.class); UploadPretreatment upload = mock(UploadPretreatment.class); MultipartFile file = mock(MultipartFile.class); FileInfo stored = new FileInfo(); stored.setFilename("generated.docx"); when(storage.of(file)).thenReturn(upload); when(upload.setPath("WebAnnexFile/")).thenReturn(upload); when(upload.setOriginalFilename("template.docx")).thenReturn(upload); when(upload.setSaveFilename("template.docx")).thenReturn(upload); when(upload.upload()).thenReturn(stored); assertFalse(new FileUploadController(storage).replaceFile(file, "WebAnnexFile/", "template.docx")); } }