aboutsummaryrefslogtreecommitdiff
path: root/fileop/fileop_test.go
diff options
context:
space:
mode:
authorGabriel Arakaki Giovanini <mail@gabrielgio.me>2022-08-28 17:03:38 +0200
committerGabriel Arakaki Giovanini <mail@gabrielgio.me>2022-08-28 17:07:40 +0200
commit544bbeeaf836436305cbed87ae1019511de62535 (patch)
tree8c7b020bba75d4d850d4a1d538e7bc7db2f01c33 /fileop/fileop_test.go
downloadporg-544bbeeaf836436305cbed87ae1019511de62535.tar.gz
porg-544bbeeaf836436305cbed87ae1019511de62535.tar.bz2
porg-544bbeeaf836436305cbed87ae1019511de62535.zip
feat: Add init source code
For now only `pipe` is feature complete. The order module needs to be changed a lot.
Diffstat (limited to 'fileop/fileop_test.go')
-rw-r--r--fileop/fileop_test.go97
1 files changed, 97 insertions, 0 deletions
diff --git a/fileop/fileop_test.go b/fileop/fileop_test.go
new file mode 100644
index 0000000..f2ab864
--- /dev/null
+++ b/fileop/fileop_test.go
@@ -0,0 +1,97 @@
+package fileop
+
+import (
+ "fmt"
+ "math/rand"
+ "os"
+ "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))
+
+ c := Move()
+
+ c <- &MoveCommand{Source: src, Destination: dest}
+ close(c)
+
+ if _, err := os.Stat(dest); err != nil {
+ t.Errorf("File %s not moved to %s", src, dest)
+ }
+
+}
+
+func TestWalk(t *testing.T) {
+ fileCount := 1000
+ folder := createFolder()
+ files := map[string]struct{}{}
+ walkedFiles := map[string]struct{}{}
+
+ for i := 0; i < fileCount; i++ {
+ files[appendEmptyFile(folder)] = struct{}{}
+ }
+
+ c := WalkFolder(folder)
+ for file := range c {
+ walkedFiles[file] = struct{}{}
+ }
+
+ for k := range files {
+ _, ok := walkedFiles[k]
+ if !ok {
+ t.Errorf("File %s was not walked", k)
+ }
+ }
+}
+
+func TestCalculateSHA256(t *testing.T) {
+ sh256, _ := CalculateSHA256("test_file.txt")
+
+ if sh256 != "027cc886f9b8c866f932ef8b8da9a32f0857ef8e16ec98dd2797021b34623b88" {
+ t.Errorf("Wrong sh256 hash, given %s", sh256)
+ }
+}