59 lines
1.5 KiB
Go
59 lines
1.5 KiB
Go
|
|
package archivex
|
||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
"io/ioutil"
|
||
|
|
"os"
|
||
|
|
"testing"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestStoreFileLifecycle(t *testing.T) {
|
||
|
|
store := NewStore()
|
||
|
|
tmp, err := ioutil.TempFile("", "starlog-archivex-*.log")
|
||
|
|
if err != nil {
|
||
|
|
t.Fatalf("TempFile failed: %v", err)
|
||
|
|
}
|
||
|
|
defer os.Remove(tmp.Name())
|
||
|
|
defer tmp.Close()
|
||
|
|
|
||
|
|
rec := FileRecord{FullPath: tmp.Name(), Pointer: tmp}
|
||
|
|
if err := store.SetFile("id-1", rec); err != nil {
|
||
|
|
t.Fatalf("SetFile failed: %v", err)
|
||
|
|
}
|
||
|
|
got, ok := store.GetFile("id-1")
|
||
|
|
if !ok {
|
||
|
|
t.Fatalf("GetFile should return stored record")
|
||
|
|
}
|
||
|
|
if got.FullPath != rec.FullPath || got.Pointer != rec.Pointer {
|
||
|
|
t.Fatalf("unexpected file record: %+v", got)
|
||
|
|
}
|
||
|
|
if err := store.DeleteFile("id-1"); err != nil {
|
||
|
|
t.Fatalf("DeleteFile failed: %v", err)
|
||
|
|
}
|
||
|
|
if _, ok := store.GetFile("id-1"); ok {
|
||
|
|
t.Fatalf("record should not exist after DeleteFile")
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestStoreRunnerLifecycle(t *testing.T) {
|
||
|
|
store := NewStore()
|
||
|
|
ctx, cancel := context.WithCancel(context.Background())
|
||
|
|
defer cancel()
|
||
|
|
runner := &Runner{Cancel: cancel, Done: make(chan struct{})}
|
||
|
|
|
||
|
|
if err := store.SetRunner("r-1", runner); err != nil {
|
||
|
|
t.Fatalf("SetRunner failed: %v", err)
|
||
|
|
}
|
||
|
|
got, ok := store.GetRunner("r-1")
|
||
|
|
if !ok || got != runner {
|
||
|
|
t.Fatalf("GetRunner should return stored runner")
|
||
|
|
}
|
||
|
|
if err := store.DeleteRunner("r-1"); err != nil {
|
||
|
|
t.Fatalf("DeleteRunner failed: %v", err)
|
||
|
|
}
|
||
|
|
if _, ok := store.GetRunner("r-1"); ok {
|
||
|
|
t.Fatalf("runner should not exist after DeleteRunner")
|
||
|
|
}
|
||
|
|
_ = ctx
|
||
|
|
}
|