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