From 5238f51dc7ba7199ab9d97fdd4eb8449e61adae2 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 8 Mar 2017 17:42:05 -0500 Subject: [PATCH] move TestReset mock from terraform to helper the terraform package doesn't know about TestProvider, so don't put the hooks in terraform.MockResourceProvider. Wrap the mock in the test where we need to check the TestProvider functionality. --- helper/resource/testing_test.go | 27 ++++++++++++++++++++++++--- terraform/resource_provider_mock.go | 10 ---------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/helper/resource/testing_test.go b/helper/resource/testing_test.go index 56e9cd02e..634f30773 100644 --- a/helper/resource/testing_test.go +++ b/helper/resource/testing_test.go @@ -6,6 +6,7 @@ import ( "os" "regexp" "strings" + "sync" "sync/atomic" "testing" @@ -26,8 +27,26 @@ func init() { } } +// wrap the mock provider to implement TestProvider +type resetProvider struct { + *terraform.MockResourceProvider + mu sync.Mutex + TestResetCalled bool + TestResetError error +} + +func (p *resetProvider) TestReset() error { + p.mu.Lock() + defer p.mu.Unlock() + p.TestResetCalled = true + return p.TestResetError +} + func TestTest(t *testing.T) { - mp := testProvider() + mp := &resetProvider{ + MockResourceProvider: testProvider(), + } + mp.DiffReturn = nil mp.ApplyFn = func( @@ -384,8 +403,10 @@ func TestTest_factoryError(t *testing.T) { } func TestTest_resetError(t *testing.T) { - mp := testProvider() - mp.TestResetError = fmt.Errorf("provider reset error") + mp := &resetProvider{ + MockResourceProvider: testProvider(), + TestResetError: fmt.Errorf("provider reset error"), + } mt := new(mockT) Test(mt, TestCase{ diff --git a/terraform/resource_provider_mock.go b/terraform/resource_provider_mock.go index 19a449597..f5315339f 100644 --- a/terraform/resource_provider_mock.go +++ b/terraform/resource_provider_mock.go @@ -56,8 +56,6 @@ type MockResourceProvider struct { ReadDataDiffFn func(*InstanceInfo, *ResourceConfig) (*InstanceDiff, error) ReadDataDiffReturn *InstanceDiff ReadDataDiffReturnError error - TestResetCalled bool - TestResetError error StopCalled bool StopFn func() error StopReturnError error @@ -146,14 +144,6 @@ func (p *MockResourceProvider) Configure(c *ResourceConfig) error { return p.ConfigureReturnError } -func (p *MockResourceProvider) TestReset() error { - p.Lock() - defer p.Unlock() - - p.TestResetCalled = true - return p.TestResetError -} - func (p *MockResourceProvider) Stop() error { p.Lock() defer p.Unlock()