diff --git a/terraform/resource_provider.go b/terraform/resource_provider.go index 88f0eeac25..39942d8a2f 100644 --- a/terraform/resource_provider.go +++ b/terraform/resource_provider.go @@ -69,6 +69,14 @@ type ResourceType struct { // of a resource provider. type ResourceProviderFactory func() (ResourceProvider, error) +// ResourceProviderFactoryFixed is a helper that creates a +// ResourceProviderFactory that just returns some fixed provider. +func ResourceProviderFactoryFixed(p ResourceProvider) ResourceProviderFactory { + return func() (ResourceProvider, error) { + return p, nil + } +} + func ProviderSatisfies(p ResourceProvider, n string) bool { for _, rt := range p.Resources() { if rt.Name == n { diff --git a/terraform/resource_provider_test.go b/terraform/resource_provider_test.go index f2952c1928..a1b7b40e55 100644 --- a/terraform/resource_provider_test.go +++ b/terraform/resource_provider_test.go @@ -175,3 +175,15 @@ func TestResourceConfig_IsSet_nil(t *testing.T) { t.Fatal("bad") } } + +func TestResourceProviderFactoryFixed(t *testing.T) { + p := new(MockResourceProvider) + var f ResourceProviderFactory = ResourceProviderFactoryFixed(p) + actual, err := f() + if err != nil { + t.Fatalf("err: %s", err) + } + if actual != p { + t.Fatal("should be identical") + } +}