github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/internal/fileutils/moveallfiles_test.go (about) 1 package fileutils_test 2 3 import ( 4 "os" 5 "path" 6 "testing" 7 8 "github.com/ActiveState/cli/internal/testhelpers/suite" 9 10 "github.com/ActiveState/cli/internal/fileutils" 11 "github.com/ActiveState/cli/internal/locale" 12 ) 13 14 type MoveAllFilesTestSuite struct { 15 suite.Suite 16 17 fromDir string 18 toDir string 19 } 20 21 func (suite *MoveAllFilesTestSuite) BeforeTest(suiteName, testName string) { 22 var err error 23 24 suite.fromDir, err = os.MkdirTemp("", "mvallfiles-from") 25 suite.Require().NoError(err, "creating temp from-dir") 26 27 suite.toDir, err = os.MkdirTemp("", "mvallfiles-to") 28 suite.Require().NoError(err, "creating temp to-dir") 29 } 30 31 func (suite *MoveAllFilesTestSuite) AfterTest(suiteName, testName string) { 32 os.RemoveAll(suite.toDir) 33 os.RemoveAll(suite.fromDir) 34 } 35 36 func (suite *MoveAllFilesTestSuite) TestFromDir_IsNotDirectory() { 37 tmpFile, err := os.CreateTemp("", "mvallfiles-tmpfile") 38 suite.Require().NoError(err, "creating fake from-dir as a file") 39 40 err = fileutils.MoveAllFiles(tmpFile.Name(), suite.toDir) 41 suite.Require().NotNil(err, "moving files") 42 suite.Equal(locale.Tr("err_os_not_a_directory", tmpFile.Name()), err.Error()) 43 } 44 45 func (suite *MoveAllFilesTestSuite) TestToDir_IsNotDirectory() { 46 tmpFile, err := os.CreateTemp("", "mvallfiles-tmpfile") 47 suite.Require().NoError(err, "creating fake from-dir as a file") 48 49 err = fileutils.MoveAllFiles(suite.fromDir, tmpFile.Name()) 50 suite.Require().NotNil(err, "moving files") 51 suite.Equal(locale.Tr("err_os_not_a_directory", tmpFile.Name()), err.Error()) 52 } 53 54 func (suite *MoveAllFilesTestSuite) addFileToFrom(relPath string) { 55 err := fileutils.Touch(path.Join(suite.fromDir, relPath)) 56 suite.Require().Nil(err, "touching test file: %s", relPath) 57 } 58 59 func (suite *MoveAllFilesTestSuite) addDirToFrom(relPath string) { 60 err := fileutils.Mkdir(path.Join(suite.fromDir, relPath)) 61 suite.Require().Nil(err, "creating test dir: %s", relPath) 62 } 63 64 func (suite *MoveAllFilesTestSuite) TestSuccess() { 65 suite.addFileToFrom("a") 66 suite.addDirToFrom("dir1") 67 suite.addFileToFrom("dir1/b") 68 suite.addDirToFrom("dir1/dir1.1") 69 suite.addFileToFrom("dir1/dir1.1/c") 70 suite.addDirToFrom("dir2") 71 suite.addFileToFrom("dir2/d") 72 73 suite.False(fileutils.FileExists(path.Join(suite.toDir, "a"))) 74 suite.False(fileutils.FileExists(path.Join(suite.toDir, "dir1/b"))) 75 suite.False(fileutils.FileExists(path.Join(suite.toDir, "dir1/dir1.1/c"))) 76 suite.False(fileutils.FileExists(path.Join(suite.toDir, "dir2/d"))) 77 78 suite.Require().Nil(fileutils.MoveAllFiles(suite.fromDir, suite.toDir)) 79 suite.True(fileutils.FileExists(path.Join(suite.toDir, "a"))) 80 suite.True(fileutils.FileExists(path.Join(suite.toDir, "dir1/b"))) 81 suite.True(fileutils.FileExists(path.Join(suite.toDir, "dir1/dir1.1/c"))) 82 suite.True(fileutils.FileExists(path.Join(suite.toDir, "dir2/d"))) 83 } 84 85 func Test_MoveAllFilesTestSuite(t *testing.T) { 86 suite.Run(t, new(MoveAllFilesTestSuite)) 87 }