fileutils_test.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package fileutils
  2. import (
  3. "bytes"
  4. "os"
  5. "path/filepath"
  6. "testing"
  7. )
  8. const (
  9. testDirRelativePath = "./test_dir"
  10. )
  11. func TestPathExists(t *testing.T) {
  12. exist := PathExists("../fileutils")
  13. if !exist {
  14. t.Fatal("应该存在的目录不存在")
  15. }
  16. exist = PathExists("foo")
  17. if exist {
  18. t.Fatal("不应该存在的目录存在")
  19. }
  20. }
  21. func TestGetDirFiles(t *testing.T) {
  22. checkTestDir(t, testDirRelativePath)
  23. }
  24. func TestReadFileWithBuffer(t *testing.T) {
  25. buffer := bytes.Buffer{}
  26. err := ReadFileWithBuffer(filepath.Join(testDirRelativePath, "test.txt"), 1, func(b []byte) {
  27. buffer.Write(b)
  28. })
  29. if err != nil {
  30. t.Fatal(err)
  31. }
  32. if buffer.String() != "test content" {
  33. t.Fatal("读取失败")
  34. }
  35. }
  36. func TestZip(t *testing.T) {
  37. zipFileRelativePath := "test.zip"
  38. destUnzipFileDir := "./unzip_file_test_dir"
  39. destUnzipBytesDir := "./unzip_bytes_test_dir"
  40. err := ZipDir(testDirRelativePath, zipFileRelativePath)
  41. if err != nil {
  42. t.Fatal(err)
  43. }
  44. defer func() {
  45. err := os.RemoveAll(zipFileRelativePath)
  46. if err != nil {
  47. t.Fatal(err)
  48. }
  49. }()
  50. err = UnzipFile(zipFileRelativePath, destUnzipFileDir)
  51. if err != nil {
  52. t.Fatal(err)
  53. }
  54. defer func() {
  55. err := os.RemoveAll(destUnzipFileDir)
  56. if err != nil {
  57. t.Fatal(err)
  58. }
  59. }()
  60. checkTestDir(t, filepath.Join(destUnzipFileDir, "test_dir"))
  61. fileBytes, err := os.ReadFile(zipFileRelativePath)
  62. if err != nil {
  63. t.Fatal(err)
  64. }
  65. err = UnzipBytes(fileBytes, destUnzipBytesDir)
  66. if err != nil {
  67. t.Fatal(err)
  68. }
  69. defer func() {
  70. err := os.RemoveAll(destUnzipBytesDir)
  71. if err != nil {
  72. t.Fatal(err)
  73. }
  74. }()
  75. checkTestDir(t, filepath.Join(destUnzipBytesDir, "test_dir"))
  76. }
  77. func checkTestDir(t *testing.T, dirPath string) {
  78. filePaths, err := GetDirFiles(dirPath)
  79. if err != nil {
  80. t.Fatal(err)
  81. }
  82. if len(filePaths) != 2 {
  83. t.Fatal("文件数量不正确")
  84. }
  85. for _, filePath := range filePaths {
  86. if filePath != filepath.Join(dirPath, "test.txt") && filePath != filepath.Join(dirPath, "test_sub_dir/test_sub.txt") {
  87. t.Fatal("出现不存在的文件")
  88. }
  89. }
  90. }