package org.springside.modules.utils.io; import static org.assertj.core.api.Assertions.*; import java.io.File; import java.io.IOException; import java.util.List; import org.junit.Test; import org.springside.modules.utils.base.Platforms; import org.springside.modules.utils.number.RandomUtil; import org.springside.modules.utils.text.Charsets; public class FileUtilTest { @Test public void readWrite() throws IOException { File file = FileUtil.createTempFile("abc", ".tmp"); try { String content = "haha\nhehe"; FileUtil.write(content, file); String result = FileUtil.toString(file); assertThat(result).isEqualTo(content); List<String> lines = FileUtil.toLines(file); assertThat(lines).containsExactly("haha", "hehe"); FileUtil.append("kaka", file); assertThat(new String(FileUtil.toByteArray(file), Charsets.UTF_8)).isEqualTo("haha\nhehekaka"); } finally { FileUtil.deleteFile(file); } } @Test public void opFiles() throws IOException { File file = new File(FilePathUtil.contact(Platforms.TMP_DIR, "testFile" + RandomUtil.nextInt())); FileUtil.touch(file); assertThat(FileUtil.isFileExists(file)).isTrue(); FileUtil.touch(file); String content = "haha\nhehe"; FileUtil.write(content, file); assertThat(FileUtil.toString(file)).isEqualTo(content); File newFile = new File(FilePathUtil.contact(Platforms.TMP_DIR, "testFile" + RandomUtil.nextInt())); File newFile2 = new File(FilePathUtil.contact(Platforms.TMP_DIR, "testFile" + RandomUtil.nextInt())); FileUtil.copyFile(file, newFile); assertThat(FileUtil.isFileExists(newFile)).isTrue(); assertThat(FileUtil.toString(newFile)).isEqualTo(content); FileUtil.moveFile(newFile, newFile2); assertThat(FileUtil.toString(newFile2)).isEqualTo("haha\nhehe"); } @Test public void opDir() throws IOException { String fileName = "testFile" + RandomUtil.nextInt(); File dir = new File(FilePathUtil.contact(Platforms.TMP_DIR, "testDir")); File file = new File(FilePathUtil.contact(Platforms.TMP_DIR, "testDir", fileName)); String content = "haha\nhehe"; FileUtil.makesureDirExists(dir); FileUtil.write(content, file); File dir2 = new File(FilePathUtil.contact(Platforms.TMP_DIR, "testDir2")); FileUtil.copyDir(dir, dir2); File file2 = new File(FilePathUtil.contact(Platforms.TMP_DIR, "testDir2", fileName)); assertThat(FileUtil.toString(file2)).isEqualTo("haha\nhehe"); File dir3 = new File(FilePathUtil.contact(Platforms.TMP_DIR, "testDir3")); FileUtil.moveDir(dir, dir3); File file3 = new File(FilePathUtil.contact(Platforms.TMP_DIR, "testDir3", fileName)); assertThat(FileUtil.toString(file3)).isEqualTo("haha\nhehe"); assertThat(FileUtil.isDirExists(dir)).isFalse(); } @Test public void fileExist() throws IOException { assertThat(FileUtil.isDirExists(Platforms.TMP_DIR)).isTrue(); assertThat(FileUtil.isDirExists(Platforms.TMP_DIR + RandomUtil.nextInt())).isFalse(); File tmpFile = null; try { tmpFile = FileUtil.createTempFile(); assertThat(FileUtil.isFileExists(tmpFile)).isTrue(); assertThat(FileUtil.isFileExists(tmpFile.getAbsolutePath() + RandomUtil.nextInt())).isFalse(); } finally { FileUtil.deleteFile(tmpFile); } } @Test public void getName() { assertThat(FileUtil.getFileName(FilePathUtil.normalizePath("/a/d/b/abc.txt"))).isEqualTo("abc.txt"); assertThat(FileUtil.getFileName("abc.txt")).isEqualTo("abc.txt"); assertThat(FileUtil.getFileExtension(FilePathUtil.normalizePath("a/d/b/abc.txt"))).isEqualTo("txt"); assertThat(FileUtil.getFileExtension(FilePathUtil.normalizePath("/a/d/b/abc"))).isEqualTo(""); assertThat(FileUtil.getFileExtension(FilePathUtil.normalizePath("/a/d/b/abc."))).isEqualTo(""); } }