Something went wrong on our end
Select Git revision
runnable-sftp.go
-
Volker Schukai authoredVolker Schukai authored
runnable-fileoperation_test.go 1.85 KiB
package jobqueue
import (
"context"
"io/ioutil"
"os"
"path"
"testing"
)
func TestFileOperationRunnable(t *testing.T) {
dir := t.TempDir()
err := os.Chdir(dir)
if err != nil {
t.Fatalf("Failed to change directory: %v", err)
}
ctx := context.Background()
testFilePath := path.Join(dir, "test.txt")
testContent := "Hello, World!"
// Test FileOperationCreate
createRunner := FileOperationRunnable{Operation: FileOperationCreate, FilePath: testFilePath}
_, err = createRunner.Run(ctx)
if err != nil {
t.Fatalf("Failed to create file: %v", err)
}
// Test FileOperationWrite
writeRunner := FileOperationRunnable{Operation: FileOperationWrite, FilePath: testFilePath, Content: testContent}
_, err = writeRunner.Run(ctx)
if err != nil {
t.Fatalf("Failed to write to file: %v", err)
}
// Test FileOperationRead
readRunner := FileOperationRunnable{Operation: FileOperationRead, FilePath: testFilePath}
result, err := readRunner.Run(ctx)
if err != nil || result.Data.Content != testContent {
t.Fatalf("Failed to read from file: %v", err)
}
// Test FileOperationAppend
appendContent := " Appended."
appendRunner := FileOperationRunnable{Operation: FileOperationAppend, FilePath: testFilePath, Content: appendContent}
_, err = appendRunner.Run(ctx)
if err != nil {
t.Fatalf("Failed to append to file: %v", err)
}
// Re-verify content after append
updatedContent, _ := ioutil.ReadFile(testFilePath)
if string(updatedContent) != testContent+appendContent {
t.Fatalf("Append operation failed.")
}
// Test FileOperationDelete
deleteRunner := FileOperationRunnable{Operation: FileOperationDelete, FilePath: testFilePath}
_, err = deleteRunner.Run(ctx)
if err != nil {
t.Fatalf("Failed to delete file: %v", err)
}
// Verify the file is deleted
if _, err := os.Stat(testFilePath); !os.IsNotExist(err) {
t.Fatalf("File deletion failed.")
}
}