package app import ( "context" "strings" "testing" "gitea.maximumdirect.net/eric/distributor/internal/config" ) func TestBackendFactoryOpensLocalSource(t *testing.T) { factory := newBackendFactory() backend, err := factory.openSource(context.Background(), config.Backend{ Backend: config.BackendLocal, Path: t.TempDir(), }) if err != nil { t.Fatalf("openSource() error = %v", err) } if backend == nil { t.Fatal("openSource() backend = nil") } } func TestBackendFactoryOpensLocalDestination(t *testing.T) { factory := newBackendFactory() backend, err := factory.openDestination(context.Background(), config.Destination{ Backend: config.BackendLocal, Path: t.TempDir(), }) if err != nil { t.Fatalf("openDestination() error = %v", err) } if backend == nil { t.Fatal("openDestination() backend = nil") } } func TestBackendFactoryOpensDirectLocalPath(t *testing.T) { factory := newBackendFactory() backend, err := factory.openLocalPath(context.Background(), t.TempDir()) if err != nil { t.Fatalf("openLocalPath() error = %v", err) } if backend == nil { t.Fatal("openLocalPath() backend = nil") } } func TestBackendFactoryRejectsUnsupportedSource(t *testing.T) { factory := newBackendFactory() _, err := factory.openSource(context.Background(), config.Backend{ Backend: config.BackendSSH, URI: "ssh://reports@example.com:22", Path: "/reports", }) if err == nil || !strings.Contains(err.Error(), "source backend ssh is not implemented for execution") { t.Fatalf("openSource() error = %v, want not implemented", err) } } func TestBackendFactoryRejectsUnsupportedDestination(t *testing.T) { factory := newBackendFactory() _, err := factory.openDestination(context.Background(), config.Destination{ Backend: config.BackendS3, Endpoint: "https://s3.example.com", Bucket: "reports", }) if err == nil || !strings.Contains(err.Error(), "backend s3 is not implemented for execution") { t.Fatalf("openDestination() error = %v, want not implemented", err) } }