github.com/hobbeswalsh/terraform@v0.3.7-0.20150619183303-ad17cf55a0fa/terraform/eval_context_mock.go (about) 1 package terraform 2 3 import ( 4 "sync" 5 6 "github.com/hashicorp/terraform/config" 7 ) 8 9 // MockEvalContext is a mock version of EvalContext that can be used 10 // for tests. 11 type MockEvalContext struct { 12 HookCalled bool 13 HookHook Hook 14 HookError error 15 16 InputCalled bool 17 InputInput UIInput 18 19 InitProviderCalled bool 20 InitProviderName string 21 InitProviderProvider ResourceProvider 22 InitProviderError error 23 24 ProviderCalled bool 25 ProviderName string 26 ProviderProvider ResourceProvider 27 28 ProviderInputCalled bool 29 ProviderInputName string 30 ProviderInputConfig map[string]interface{} 31 32 SetProviderInputCalled bool 33 SetProviderInputName string 34 SetProviderInputConfig map[string]interface{} 35 36 ConfigureProviderCalled bool 37 ConfigureProviderName string 38 ConfigureProviderConfig *ResourceConfig 39 ConfigureProviderError error 40 41 SetProviderConfigCalled bool 42 SetProviderConfigName string 43 SetProviderConfigConfig *ResourceConfig 44 45 ParentProviderConfigCalled bool 46 ParentProviderConfigName string 47 ParentProviderConfigConfig *ResourceConfig 48 49 InitProvisionerCalled bool 50 InitProvisionerName string 51 InitProvisionerProvisioner ResourceProvisioner 52 InitProvisionerError error 53 54 ProvisionerCalled bool 55 ProvisionerName string 56 ProvisionerProvisioner ResourceProvisioner 57 58 InterpolateCalled bool 59 InterpolateConfig *config.RawConfig 60 InterpolateResource *Resource 61 InterpolateConfigResult *ResourceConfig 62 InterpolateError error 63 64 PathCalled bool 65 PathPath []string 66 67 SetVariablesCalled bool 68 SetVariablesModule string 69 SetVariablesVariables map[string]string 70 71 DiffCalled bool 72 DiffDiff *Diff 73 DiffLock *sync.RWMutex 74 75 StateCalled bool 76 StateState *State 77 StateLock *sync.RWMutex 78 } 79 80 func (c *MockEvalContext) Hook(fn func(Hook) (HookAction, error)) error { 81 c.HookCalled = true 82 if c.HookHook != nil { 83 if _, err := fn(c.HookHook); err != nil { 84 return err 85 } 86 } 87 88 return c.HookError 89 } 90 91 func (c *MockEvalContext) Input() UIInput { 92 c.InputCalled = true 93 return c.InputInput 94 } 95 96 func (c *MockEvalContext) InitProvider(n string) (ResourceProvider, error) { 97 c.InitProviderCalled = true 98 c.InitProviderName = n 99 return c.InitProviderProvider, c.InitProviderError 100 } 101 102 func (c *MockEvalContext) Provider(n string) ResourceProvider { 103 c.ProviderCalled = true 104 c.ProviderName = n 105 return c.ProviderProvider 106 } 107 108 func (c *MockEvalContext) ConfigureProvider(n string, cfg *ResourceConfig) error { 109 c.ConfigureProviderCalled = true 110 c.ConfigureProviderName = n 111 c.ConfigureProviderConfig = cfg 112 return c.ConfigureProviderError 113 } 114 115 func (c *MockEvalContext) SetProviderConfig( 116 n string, cfg *ResourceConfig) error { 117 c.SetProviderConfigCalled = true 118 c.SetProviderConfigName = n 119 c.SetProviderConfigConfig = cfg 120 return nil 121 } 122 123 func (c *MockEvalContext) ParentProviderConfig(n string) *ResourceConfig { 124 c.ParentProviderConfigCalled = true 125 c.ParentProviderConfigName = n 126 return c.ParentProviderConfigConfig 127 } 128 129 func (c *MockEvalContext) ProviderInput(n string) map[string]interface{} { 130 c.ProviderInputCalled = true 131 c.ProviderInputName = n 132 return c.ProviderInputConfig 133 } 134 135 func (c *MockEvalContext) SetProviderInput(n string, cfg map[string]interface{}) { 136 c.SetProviderInputCalled = true 137 c.SetProviderInputName = n 138 c.SetProviderInputConfig = cfg 139 } 140 141 func (c *MockEvalContext) InitProvisioner(n string) (ResourceProvisioner, error) { 142 c.InitProvisionerCalled = true 143 c.InitProvisionerName = n 144 return c.InitProvisionerProvisioner, c.InitProvisionerError 145 } 146 147 func (c *MockEvalContext) Provisioner(n string) ResourceProvisioner { 148 c.ProvisionerCalled = true 149 c.ProvisionerName = n 150 return c.ProvisionerProvisioner 151 } 152 153 func (c *MockEvalContext) Interpolate( 154 config *config.RawConfig, resource *Resource) (*ResourceConfig, error) { 155 c.InterpolateCalled = true 156 c.InterpolateConfig = config 157 c.InterpolateResource = resource 158 return c.InterpolateConfigResult, c.InterpolateError 159 } 160 161 func (c *MockEvalContext) Path() []string { 162 c.PathCalled = true 163 return c.PathPath 164 } 165 166 func (c *MockEvalContext) SetVariables(n string, vs map[string]string) { 167 c.SetVariablesCalled = true 168 c.SetVariablesModule = n 169 c.SetVariablesVariables = vs 170 } 171 172 func (c *MockEvalContext) Diff() (*Diff, *sync.RWMutex) { 173 c.DiffCalled = true 174 return c.DiffDiff, c.DiffLock 175 } 176 177 func (c *MockEvalContext) State() (*State, *sync.RWMutex) { 178 c.StateCalled = true 179 return c.StateState, c.StateLock 180 }