From ec61b9805f6fea90deb30f488426f19f5476f84a Mon Sep 17 00:00:00 2001 From: armirveliaj Date: Wed, 30 Oct 2024 09:23:10 -0400 Subject: [PATCH] Add new unit tests on loaders --- loaders/loader_test.go | 89 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/loaders/loader_test.go b/loaders/loader_test.go index ec83c9500..8b2691a28 100644 --- a/loaders/loader_test.go +++ b/loaders/loader_test.go @@ -3768,3 +3768,92 @@ func TestProcessFile(t *testing.T) { t.Errorf("File was not added to ldr.rdrs") } } + +func TestLoaderMoveFiles(t *testing.T) { + inDir := t.TempDir() + outDir := t.TempDir() + + testFileNames := []string{"file1.csv", "file2.csv", "lockfile"} + for _, name := range testFileNames { + filePath := path.Join(inDir, name) + if _, err := os.Create(filePath); err != nil { + t.Fatalf("Failed to create test file %s: %v", name, err) + } + } + + loader := &Loader{ + tpInDir: inDir, + tpOutDir: outDir, + lockFilepath: "lockfile", + } + + if err := loader.moveFiles(); err != nil { + t.Errorf("moveFiles returned an error: %v", err) + } + + for _, name := range testFileNames { + filePath := path.Join(outDir, name) + if name != loader.lockFilepath { + if _, err := os.Stat(filePath); os.IsNotExist(err) { + t.Errorf("Expected file %s to be in output directory, but it was not found", name) + } + } else { + if _, err := os.Stat(path.Join(inDir, name)); os.IsNotExist(err) { + t.Errorf("Expected lock file %s to remain in input directory, but it was moved", name) + } + } + } +} + +func TestLoaderUnlockFolder(t *testing.T) { + tempDir := t.TempDir() + lockFilePath := path.Join(tempDir, "lockfile") + + if _, err := os.Create(lockFilePath); err != nil { + t.Fatalf("Failed to create lock file: %v", err) + } + + loader := &Loader{ + lockFilepath: lockFilePath, + } + + if err := loader.unlockFolder(); err != nil { + t.Errorf("unlockFolder returned an error: %v", err) + } + + if _, err := os.Stat(lockFilePath); !os.IsNotExist(err) { + t.Errorf("Expected lock file to be removed, but it still exists") + } + + loader.lockFilepath = "" + if err := loader.unlockFolder(); err != nil { + t.Errorf("unlockFolder returned an error with empty lockFilepath: %v", err) + } +} + +func TestLoaderLockFolder(t *testing.T) { + tempDir := t.TempDir() + lockFilePath := path.Join(tempDir, "lockfile") + + loader := &Loader{ + lockFilepath: lockFilePath, + } + + if err := loader.lockFolder(); err != nil { + t.Errorf("lockFolder returned an error: %v", err) + } + + if _, err := os.Stat(lockFilePath); os.IsNotExist(err) { + t.Errorf("Expected lock file to be created, but it was not found") + } + + loader.lockFilepath = "" + if err := loader.lockFolder(); err != nil { + t.Errorf("lockFolder returned an error with empty lockFilepath: %v", err) + } + + emptyLockFilePath := path.Join(tempDir, "nonexistent_lockfile") + if _, err := os.Stat(emptyLockFilePath); err == nil { + t.Errorf("Expected no lock file to be created for empty lockFilepath, but it exists") + } +}