From c8f3e2ea41f8175b487d3a21b79f6e1fd72dae08 Mon Sep 17 00:00:00 2001 From: Tboy Date: Tue, 17 Dec 2019 10:50:19 +0800 Subject: [PATCH] Add FileUtilsTest.java , the unit test for FileUtils (#1493) (#1) --- .../api/utils/FileUtilsTest.java | 109 ++++++++++++++++++ pom.xml | 1 + 2 files changed, 110 insertions(+) create mode 100644 dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/utils/FileUtilsTest.java diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/utils/FileUtilsTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/utils/FileUtilsTest.java new file mode 100644 index 000000000..f205d3915 --- /dev/null +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/utils/FileUtilsTest.java @@ -0,0 +1,109 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.dolphinscheduler.api.utils; + +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; +import org.mockito.Mockito; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.io.Resource; +import org.springframework.web.multipart.MultipartFile; + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; + +import static org.junit.Assert.*; + +public class FileUtilsTest { + + private static final Logger logger = LoggerFactory.getLogger(FileUtilsTest.class); + + @Rule + public TemporaryFolder folder = null; + + private String rootPath = null; + + @Before + public void setUp() throws Exception { + + folder = new TemporaryFolder(); + folder.create(); + + rootPath = folder.getRoot().getAbsolutePath(); + } + + @After + public void tearDown() throws Exception { + + folder.delete(); + } + + /** + * Use mock to test copyFile + * @throws IOException + */ + @Test + public void testCopyFile() throws IOException { + + //Define dest file path + String destFilename = rootPath + System.getProperty("file.separator") + "data.txt"; + logger.info("destFilename: "+destFilename); + + //Define InputStream for MultipartFile + String data = "data text"; + InputStream targetStream = new ByteArrayInputStream(data.getBytes()); + + //Use Mockito to mock MultipartFile + MultipartFile file = Mockito.mock(MultipartFile.class); + Mockito.when(file.getInputStream()).thenReturn(targetStream); + + //Invoke copyFile + FileUtils.copyFile(file,destFilename); + + //Test file exists + File destFile = new File(destFilename); + assertTrue(destFile.exists()); + + } + + @Test + public void testFile2Resource() throws IOException { + + //Define dest file path + String destFilename = rootPath + System.getProperty("file.separator") + "data.txt"; + logger.info("destFilename: "+destFilename); + + //Define test resource + File file = folder.newFile("resource.txt"); + + //Invoke file2Resource and test not null + Resource resource = FileUtils.file2Resource(file.getAbsolutePath()); + assertNotNull(resource); + + //Invoke file2Resource and test null + Resource resource1 = FileUtils.file2Resource(file.getAbsolutePath()+"abc"); + assertNull(resource1); + + } +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index ed118a5bd..61c229762 100644 --- a/pom.xml +++ b/pom.xml @@ -613,6 +613,7 @@ **/api/utils/CheckUtilsTest.java + **/api/utils/FileUtilsTest.java **/common/graph/*.java **/*CollectionUtilsTest.java -- GitLab