mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-06-11 08:37:50 +02:00
84 lines
2.1 KiB
Go
84 lines
2.1 KiB
Go
package multiagent
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
localbk "github.com/cloudwego/eino-ext/adk/backend/local"
|
|
"github.com/cloudwego/eino/adk/filesystem"
|
|
"github.com/cloudwego/eino/adk/middlewares/plantask"
|
|
)
|
|
|
|
func TestLocalPlantaskBackendLsInfoReturnsFullPaths(t *testing.T) {
|
|
t.Parallel()
|
|
ctx := context.Background()
|
|
baseDir := t.TempDir()
|
|
|
|
loc, err := localbk.NewBackend(ctx, &localbk.Config{})
|
|
if err != nil {
|
|
t.Fatalf("NewBackend: %v", err)
|
|
}
|
|
be := newLocalPlantaskBackend(loc)
|
|
|
|
hwPath := filepath.Join(baseDir, ".highwatermark")
|
|
if err := os.WriteFile(hwPath, []byte("1"), 0o600); err != nil {
|
|
t.Fatalf("write highwatermark: %v", err)
|
|
}
|
|
|
|
files, err := be.LsInfo(ctx, &plantask.LsInfoRequest{Path: baseDir})
|
|
if err != nil {
|
|
t.Fatalf("LsInfo: %v", err)
|
|
}
|
|
if len(files) != 1 {
|
|
t.Fatalf("expected 1 file, got %d", len(files))
|
|
}
|
|
if files[0].Path != hwPath {
|
|
t.Fatalf("expected full path %q, got %q", hwPath, files[0].Path)
|
|
}
|
|
|
|
content, err := be.Read(ctx, &plantask.ReadRequest{FilePath: files[0].Path})
|
|
if err != nil {
|
|
t.Fatalf("Read via LsInfo path: %v", err)
|
|
}
|
|
if content.Content != "1" {
|
|
t.Fatalf("unexpected content: %q", content.Content)
|
|
}
|
|
}
|
|
|
|
func TestLocalPlantaskBackendSecondTaskCreateScenario(t *testing.T) {
|
|
t.Parallel()
|
|
ctx := context.Background()
|
|
baseDir := t.TempDir()
|
|
|
|
loc, err := localbk.NewBackend(ctx, &localbk.Config{})
|
|
if err != nil {
|
|
t.Fatalf("NewBackend: %v", err)
|
|
}
|
|
be := newLocalPlantaskBackend(loc)
|
|
|
|
hwPath := filepath.Join(baseDir, ".highwatermark")
|
|
if err := loc.Write(ctx, &filesystem.WriteRequest{FilePath: hwPath, Content: "1"}); err != nil {
|
|
t.Fatalf("seed highwatermark: %v", err)
|
|
}
|
|
|
|
files, err := be.LsInfo(ctx, &plantask.LsInfoRequest{Path: baseDir})
|
|
if err != nil {
|
|
t.Fatalf("LsInfo: %v", err)
|
|
}
|
|
var hwFile string
|
|
for _, f := range files {
|
|
if filepath.Base(f.Path) == ".highwatermark" {
|
|
hwFile = f.Path
|
|
break
|
|
}
|
|
}
|
|
if hwFile == "" {
|
|
t.Fatal("highwatermark not listed")
|
|
}
|
|
if _, err := be.Read(ctx, &plantask.ReadRequest{FilePath: hwFile}); err != nil {
|
|
t.Fatalf("Read highwatermark (second TaskCreate path): %v", err)
|
|
}
|
|
}
|