terraform/terraform/resource_provider_mock.go

45 lines
1.2 KiB
Go
Raw Normal View History

2014-05-29 00:07:47 +02:00
package terraform
// MockResourceProvider implements ResourceProvider but mocks out all the
// calls for testing purposes.
type MockResourceProvider struct {
// Anything you want, in case you need to store extra data with the mock.
Meta interface{}
ConfigureCalled bool
2014-06-13 02:59:59 +02:00
ConfigureConfig *ResourceConfig
ConfigureReturnError error
DiffCalled bool
DiffState *ResourceState
2014-06-13 02:59:59 +02:00
DiffDesired *ResourceConfig
DiffFn func(*ResourceState, *ResourceConfig) (*ResourceDiff, error)
2014-06-06 09:48:32 +02:00
DiffReturn *ResourceDiff
DiffReturnError error
ResourcesCalled bool
ResourcesReturn []ResourceType
2014-05-29 00:07:47 +02:00
}
2014-06-13 02:59:59 +02:00
func (p *MockResourceProvider) Configure(c *ResourceConfig) error {
2014-05-29 00:07:47 +02:00
p.ConfigureCalled = true
p.ConfigureConfig = c
return p.ConfigureReturnError
2014-05-29 00:07:47 +02:00
}
func (p *MockResourceProvider) Diff(
state *ResourceState,
2014-06-13 02:59:59 +02:00
desired *ResourceConfig) (*ResourceDiff, error) {
2014-06-05 11:32:10 +02:00
p.DiffCalled = true
p.DiffState = state
p.DiffDesired = desired
if p.DiffFn != nil {
return p.DiffFn(state, desired)
}
2014-06-05 11:32:10 +02:00
return p.DiffReturn, p.DiffReturnError
}
func (p *MockResourceProvider) Resources() []ResourceType {
p.ResourcesCalled = true
return p.ResourcesReturn
}