58 lines
1.5 KiB
Go
58 lines
1.5 KiB
Go
package provider
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
)
|
|
|
|
type mockProvider struct {
|
|
name string
|
|
}
|
|
|
|
func (m *mockProvider) Name() string { return m.name }
|
|
func (m *mockProvider) DisplayName() string { return "Mock" }
|
|
func (m *mockProvider) ValidateAuth(ctx context.Context) error { return nil }
|
|
func (m *mockProvider) Server() ServerService { return nil }
|
|
func (m *mockProvider) Domain() DomainService { return nil }
|
|
func (m *mockProvider) Storage() StorageService { return nil }
|
|
func (m *mockProvider) CDN() CDNService { return nil }
|
|
func (m *mockProvider) Billing() BillingService { return nil }
|
|
|
|
func TestRegistryRegisterAndNew(t *testing.T) {
|
|
Register("mock", func(cfg ProviderConfig) (Provider, error) {
|
|
return &mockProvider{name: "mock"}, nil
|
|
})
|
|
|
|
p, err := New("mock", ProviderConfig{})
|
|
if err != nil {
|
|
t.Fatalf("New() error: %v", err)
|
|
}
|
|
if p.Name() != "mock" {
|
|
t.Errorf("Name() = %q, want %q", p.Name(), "mock")
|
|
}
|
|
}
|
|
|
|
func TestRegistryUnknown(t *testing.T) {
|
|
_, err := New("unknown", ProviderConfig{})
|
|
if err == nil {
|
|
t.Error("expected error for unknown provider")
|
|
}
|
|
}
|
|
|
|
func TestRegistryList(t *testing.T) {
|
|
Register("list-test", func(cfg ProviderConfig) (Provider, error) {
|
|
return &mockProvider{name: "list-test"}, nil
|
|
})
|
|
names := List()
|
|
found := false
|
|
for _, n := range names {
|
|
if n == "list-test" {
|
|
found = true
|
|
break
|
|
}
|
|
}
|
|
if !found {
|
|
t.Errorf("List() should contain 'list-test', got %v", names)
|
|
}
|
|
}
|