From 3a79a1ca1a465071aefcf452f5161a20d0c71df3 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Thu, 10 Jul 2014 09:46:21 -0700 Subject: [PATCH] terraform: add ResourceProviderFactoryFixed --- terraform/resource_provider.go | 8 ++++++++ terraform/resource_provider_test.go | 12 ++++++++++++ 2 files changed, 20 insertions(+) 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") + } +}