From fa95f2f69e615434aee736766b2e3e348aaac40d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Fri, 16 Oct 2020 18:53:51 +0800 Subject: [PATCH] =?UTF-8?q?test:=20fileManager=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blog/controller/UserControllerTest.java | 2 +- .../fileserviceimpl/FileManagerTest.java | 123 ++++++++++++++++++ .../QiniuFileServiceImplTest.java | 72 ---------- 3 files changed, 124 insertions(+), 73 deletions(-) create mode 100644 src/test/java/cn/celess/blog/service/fileserviceimpl/FileManagerTest.java delete mode 100644 src/test/java/cn/celess/blog/service/fileserviceimpl/QiniuFileServiceImplTest.java diff --git a/src/test/java/cn/celess/blog/controller/UserControllerTest.java b/src/test/java/cn/celess/blog/controller/UserControllerTest.java index b27398f..2d40020 100644 --- a/src/test/java/cn/celess/blog/controller/UserControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/UserControllerTest.java @@ -117,7 +117,7 @@ public class UserControllerTest extends BaseTest { // mock 实现类 // FIXME :: mock 时不应该为 qiniuService - mockInjectInstance(userService, "fileService", (FileService) TestQiniuFileServiceImpl::new); +// mockInjectInstance(userService, "fileService", (FileService) TestQiniuFileServiceImpl::new); MockMultipartFile file = new MockMultipartFile("file", "logo.png", MediaType.IMAGE_PNG_VALUE, inputStream); getMockData(multipart("/user/imgUpload").file(file), userLogin()).andDo(result -> { diff --git a/src/test/java/cn/celess/blog/service/fileserviceimpl/FileManagerTest.java b/src/test/java/cn/celess/blog/service/fileserviceimpl/FileManagerTest.java new file mode 100644 index 0000000..646f80d --- /dev/null +++ b/src/test/java/cn/celess/blog/service/fileserviceimpl/FileManagerTest.java @@ -0,0 +1,123 @@ +package cn.celess.blog.service.fileserviceimpl; + +import cn.celess.blog.BaseTest; +import cn.celess.blog.enmu.ConfigKeyEnum; +import cn.celess.blog.entity.model.FileInfo; +import cn.celess.blog.entity.model.FileResponse; +import cn.celess.blog.service.FileManager; +import cn.celess.blog.service.FileService; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.util.List; + +import static org.junit.Assert.*; + +@Slf4j +public class FileManagerTest extends BaseTest { + + @Autowired + FileService fileService; + + FileManager fileManager; + + @Test + public void testUploadFile() { + // 测试本地的文件上传 + fileManager = null; + System.setProperty(ConfigKeyEnum.FILE_TYPE.getKey(), "local"); + fileManager = fileService.getFileManager(); + assertTrue(fileManager instanceof LocalFileServiceImpl); + uploadFile(); + + // 测试七牛云的文件上传 + fileManager = null; + System.setProperty(ConfigKeyEnum.FILE_TYPE.getKey(), "qiniu"); + fileManager = fileService.getFileManager(); + assertTrue(fileManager instanceof QiniuFileServiceImpl); + uploadFile(); + } + + @Test + public void testGetFileList() { + // 测试获取本地的文件列表 + fileManager = null; + System.setProperty(ConfigKeyEnum.FILE_TYPE.getKey(), "local"); + fileManager = fileService.getFileManager(); + assertTrue(fileManager instanceof LocalFileServiceImpl); + getFileList(); + + // 测试获取七牛云的文件列表 + fileManager = null; + System.setProperty(ConfigKeyEnum.FILE_TYPE.getKey(), "qiniu"); + fileManager = fileService.getFileManager(); + assertTrue(fileManager instanceof QiniuFileServiceImpl); + getFileList(); + } + + @Test + public void testDeleteFile() { + // 测试删除本地文件 + fileManager = null; + System.setProperty(ConfigKeyEnum.FILE_TYPE.getKey(), "local"); + fileManager = fileService.getFileManager(); + assertTrue(fileManager instanceof LocalFileServiceImpl); + deleteFile(); + + // 测试删除七牛云文件 + fileManager = null; + System.setProperty(ConfigKeyEnum.FILE_TYPE.getKey(), "qiniu"); + fileManager = fileService.getFileManager(); + assertTrue(fileManager instanceof QiniuFileServiceImpl); + deleteFile(); + } + + @SneakyThrows + public void uploadFile() { + String fileName = null; + File file = createFile(); + FileResponse fileResponse = fileManager.uploadFile(new FileInputStream(file), file.getName()); + assertEquals(file.getName(), fileResponse.key); + assertEquals(System.getProperty(ConfigKeyEnum.FILE_TYPE.getKey()), fileResponse.bucket); + // assertNotNull(fileResponse.hash); + fileName = fileResponse.key; + + fileManager.deleteFile(fileName); + + file.deleteOnExit(); + } + + public void getFileList() { + List fileList = fileManager.getFileList(); + fileList.forEach(fileInfo -> { + assertNotNull(fileInfo.key); + // assertNotNull(fileInfo.hash); + }); + } + + public void deleteFile() { + uploadFile(); + } + + @SneakyThrows + private File createFile() { + String fileName = "test." + randomStr(3); + File file = new File(fileName); + if (!file.exists() && file.createNewFile()) { + // 创建文件 + log.debug("创建文件[{}]", fileName); + FileOutputStream outputStream = new FileOutputStream(file); + for (int i = 0; i < 100; i++) { + outputStream.write(new byte[1024]); + } + outputStream.flush(); + outputStream.close(); + } + return file; + } +} \ No newline at end of file diff --git a/src/test/java/cn/celess/blog/service/fileserviceimpl/QiniuFileServiceImplTest.java b/src/test/java/cn/celess/blog/service/fileserviceimpl/QiniuFileServiceImplTest.java deleted file mode 100644 index 2d2c1b4..0000000 --- a/src/test/java/cn/celess/blog/service/fileserviceimpl/QiniuFileServiceImplTest.java +++ /dev/null @@ -1,72 +0,0 @@ -package cn.celess.blog.service.fileserviceimpl; - -import cn.celess.blog.BaseTest; -import cn.celess.blog.entity.model.FileInfo; -import cn.celess.blog.entity.model.FileResponse; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ActiveProfiles; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.util.List; - -import static org.junit.Assert.*; - -@Slf4j -public class QiniuFileServiceImplTest extends BaseTest { - - @Autowired - QiniuFileServiceImpl qiniuFileService; - private String fileName; - - @SneakyThrows - @Test - public void uploadFile() { - fileName = null; - File file = createFile(); - FileResponse fileResponse = qiniuFileService.uploadFile(new FileInputStream(file), file.getName()); - assertEquals(file.getName(), fileResponse.key); - assertEquals("qiniu", fileResponse.bucket); - assertNotNull(fileResponse.hash); - fileName = fileResponse.key; - - qiniuFileService.deleteFile(fileName); - - file.deleteOnExit(); - } - - @Test - public void getFileList() { - List fileList = qiniuFileService.getFileList(); - fileList.forEach(fileInfo -> { - assertNotNull(fileInfo.key); - assertNotNull(fileInfo.hash); - }); - } - - @Test - public void deleteFile() { - uploadFile(); - } - - @SneakyThrows - private File createFile() { - String fileName = "test." + randomStr(3); - File file = new File(fileName); - if (!file.exists() && file.createNewFile()) { - // 创建文件 - log.debug("创建文件[{}]", fileName); - FileOutputStream outputStream = new FileOutputStream(file); - for (int i = 0; i < 100; i++) { - outputStream.write(new byte[1024]); - } - outputStream.flush(); - outputStream.close(); - } - return file; - } -} \ No newline at end of file