package provider import ( "context" "testing" "github.com/vasyakrg/dns-autoresolver/internal/diff" "github.com/vasyakrg/dns-autoresolver/internal/model" ) // stubProvider проверяет, что интерфейс реализуем. type stubProvider struct{} func (stubProvider) Name() string { return "stub" } func (stubProvider) ListZones(context.Context, Credentials) ([]Zone, error) { return []Zone{{ID: "1", Name: "example.com."}}, nil } func (stubProvider) GetRecords(context.Context, Credentials, string) ([]model.Record, error) { return nil, nil } func (stubProvider) ApplyChanges(context.Context, Credentials, string, diff.Changeset) error { return nil } func TestProviderInterfaceSatisfied(t *testing.T) { var p Provider = stubProvider{} zs, err := p.ListZones(context.Background(), Credentials{Secret: "x"}) if err != nil || len(zs) != 1 || zs[0].Name != "example.com." { t.Fatalf("unexpected: %v %v", zs, err) } }