From 3451d56ead6e57f503962b876c89284f1fb73a90 Mon Sep 17 00:00:00 2001 From: Gabriel Arakaki Giovanini Date: Sat, 10 Sep 2022 17:33:30 +0200 Subject: ref: Create a storage interface This `Storage` interface will define all the interactions with the storage system. For now I plan to support native file system through go's standard library and Nextcloud through *webdav*. So this is the first step in that direction. --- fileop/fileop_test.go | 84 ++++++++++++--------------------------------------- 1 file changed, 19 insertions(+), 65 deletions(-) (limited to 'fileop/fileop_test.go') diff --git a/fileop/fileop_test.go b/fileop/fileop_test.go index f2ab864..134090d 100644 --- a/fileop/fileop_test.go +++ b/fileop/fileop_test.go @@ -2,57 +2,14 @@ package fileop import ( "fmt" - "math/rand" "os" + "porg/testutil" "testing" - "time" ) -func init() { - rand.Seed(time.Now().UnixNano()) -} - -func RandomString(n int) string { - var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") - s := make([]rune, n) - for i := range s { - s[i] = letters[rand.Intn(len(letters))] - } - return string(s) -} - -func createFolder() (tmp string) { - tmp = fmt.Sprintf("/tmp/%s", RandomString(10)) - - err := os.Mkdir(tmp, 0755) - - if err != nil { - fmt.Println(err.Error()) - } - - return -} - -func appendEmptyFile(path string) (fullPath string) { - fullPath = fmt.Sprintf("%s/%s", path, RandomString(10)) - os.OpenFile(fullPath, os.O_RDONLY|os.O_CREATE, 0666) - - return -} - -func createEmptyFile(path string) { - os.OpenFile(path, os.O_RDONLY|os.O_CREATE, 0666) -} - -func createTmpFile() (fullPath string) { - path := createFolder() - fullPath = appendEmptyFile(path) - return -} - func TestMove(t *testing.T) { - src := createTmpFile() - dest := fmt.Sprintf("/tmp/%s", RandomString(10)) + src := testutil.CreateTmpFile() + dest := fmt.Sprintf("/tmp/%s", testutil.RandomString(10)) c := Move() @@ -65,33 +22,30 @@ func TestMove(t *testing.T) { } -func TestWalk(t *testing.T) { - fileCount := 1000 - folder := createFolder() - files := map[string]struct{}{} - walkedFiles := map[string]struct{}{} +func TestIsEmpty(t *testing.T) { + folder := testutil.CreateFolder() - for i := 0; i < fileCount; i++ { - files[appendEmptyFile(folder)] = struct{}{} - } + empty, err := IsEmpty(folder) - c := WalkFolder(folder) - for file := range c { - walkedFiles[file] = struct{}{} + if err != nil { + t.Fatalf("Error reading the folder %s", err.Error()) } - for k := range files { - _, ok := walkedFiles[k] - if !ok { - t.Errorf("File %s was not walked", k) - } + if !empty { + t.Errorf("Folder is not empty %s", folder) } + } func TestCalculateSHA256(t *testing.T) { - sh256, _ := CalculateSHA256("test_file.txt") - if sh256 != "027cc886f9b8c866f932ef8b8da9a32f0857ef8e16ec98dd2797021b34623b88" { - t.Errorf("Wrong sh256 hash, given %s", sh256) + if f, err := os.Open("test_file.txt"); err != nil { + t.Error(err) + } else { + sh256, _ := CalculateSHA256(f) + if sh256 != "027cc886f9b8c866f932ef8b8da9a32f0857ef8e16ec98dd2797021b34623b88" { + t.Errorf("Wrong sh256 hash, given %s", sh256) + } } + } -- cgit v1.2.3