73 lines
2.0 KiB
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)
|
|
}
|
|
}
|