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