Files
distributor/internal/app/backends_test.go

73 lines
2.0 KiB
Go

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)
}
}