6 "github.com/hashicorp/terraform/config"
9 // MockEvalContext is a mock version of EvalContext that can be used
11 type MockEvalContext struct {
13 StoppedValue <-chan struct{}
22 InitProviderCalled bool
23 InitProviderName string
24 InitProviderProvider ResourceProvider
25 InitProviderError error
29 ProviderProvider ResourceProvider
31 CloseProviderCalled bool
32 CloseProviderName string
33 CloseProviderProvider ResourceProvider
35 ProviderInputCalled bool
36 ProviderInputName string
37 ProviderInputConfig map[string]interface{}
39 SetProviderInputCalled bool
40 SetProviderInputName string
41 SetProviderInputConfig map[string]interface{}
43 ConfigureProviderCalled bool
44 ConfigureProviderName string
45 ConfigureProviderConfig *ResourceConfig
46 ConfigureProviderError error
48 InitProvisionerCalled bool
49 InitProvisionerName string
50 InitProvisionerProvisioner ResourceProvisioner
51 InitProvisionerError error
53 ProvisionerCalled bool
54 ProvisionerName string
55 ProvisionerProvisioner ResourceProvisioner
57 CloseProvisionerCalled bool
58 CloseProvisionerName string
59 CloseProvisionerProvisioner ResourceProvisioner
61 InterpolateCalled bool
62 InterpolateConfig *config.RawConfig
63 InterpolateResource *Resource
64 InterpolateConfigResult *ResourceConfig
65 InterpolateError error
67 InterpolateProviderCalled bool
68 InterpolateProviderConfig *config.ProviderConfig
69 InterpolateProviderResource *Resource
70 InterpolateProviderConfigResult *ResourceConfig
71 InterpolateProviderError error
76 SetVariablesCalled bool
77 SetVariablesModule string
78 SetVariablesVariables map[string]interface{}
82 DiffLock *sync.RWMutex
86 StateLock *sync.RWMutex
89 func (c *MockEvalContext) Stopped() <-chan struct{} {
90 c.StoppedCalled = true
94 func (c *MockEvalContext) Hook(fn func(Hook) (HookAction, error)) error {
96 if c.HookHook != nil {
97 if _, err := fn(c.HookHook); err != nil {
105 func (c *MockEvalContext) Input() UIInput {
110 func (c *MockEvalContext) InitProvider(t, n string) (ResourceProvider, error) {
111 c.InitProviderCalled = true
112 c.InitProviderName = n
113 return c.InitProviderProvider, c.InitProviderError
116 func (c *MockEvalContext) Provider(n string) ResourceProvider {
117 c.ProviderCalled = true
119 return c.ProviderProvider
122 func (c *MockEvalContext) CloseProvider(n string) error {
123 c.CloseProviderCalled = true
124 c.CloseProviderName = n
128 func (c *MockEvalContext) ConfigureProvider(n string, cfg *ResourceConfig) error {
129 c.ConfigureProviderCalled = true
130 c.ConfigureProviderName = n
131 c.ConfigureProviderConfig = cfg
132 return c.ConfigureProviderError
135 func (c *MockEvalContext) ProviderInput(n string) map[string]interface{} {
136 c.ProviderInputCalled = true
137 c.ProviderInputName = n
138 return c.ProviderInputConfig
141 func (c *MockEvalContext) SetProviderInput(n string, cfg map[string]interface{}) {
142 c.SetProviderInputCalled = true
143 c.SetProviderInputName = n
144 c.SetProviderInputConfig = cfg
147 func (c *MockEvalContext) InitProvisioner(n string) (ResourceProvisioner, error) {
148 c.InitProvisionerCalled = true
149 c.InitProvisionerName = n
150 return c.InitProvisionerProvisioner, c.InitProvisionerError
153 func (c *MockEvalContext) Provisioner(n string) ResourceProvisioner {
154 c.ProvisionerCalled = true
155 c.ProvisionerName = n
156 return c.ProvisionerProvisioner
159 func (c *MockEvalContext) CloseProvisioner(n string) error {
160 c.CloseProvisionerCalled = true
161 c.CloseProvisionerName = n
165 func (c *MockEvalContext) Interpolate(
166 config *config.RawConfig, resource *Resource) (*ResourceConfig, error) {
167 c.InterpolateCalled = true
168 c.InterpolateConfig = config
169 c.InterpolateResource = resource
170 return c.InterpolateConfigResult, c.InterpolateError
173 func (c *MockEvalContext) InterpolateProvider(
174 config *config.ProviderConfig, resource *Resource) (*ResourceConfig, error) {
175 c.InterpolateProviderCalled = true
176 c.InterpolateProviderConfig = config
177 c.InterpolateProviderResource = resource
178 return c.InterpolateProviderConfigResult, c.InterpolateError
181 func (c *MockEvalContext) Path() []string {
186 func (c *MockEvalContext) SetVariables(n string, vs map[string]interface{}) {
187 c.SetVariablesCalled = true
188 c.SetVariablesModule = n
189 c.SetVariablesVariables = vs
192 func (c *MockEvalContext) Diff() (*Diff, *sync.RWMutex) {
194 return c.DiffDiff, c.DiffLock
197 func (c *MockEvalContext) State() (*State, *sync.RWMutex) {
199 return c.StateState, c.StateLock