github.com/nicgrayson/terraform@v0.4.3-0.20150415203910-c4de50829380/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 SetVariablesVariables map[string]string 69 70 DiffCalled bool 71 DiffDiff *Diff 72 DiffLock *sync.RWMutex 73 74 StateCalled bool 75 StateState *State 76 StateLock *sync.RWMutex 77 } 78 79 func (c *MockEvalContext) Hook(fn func(Hook) (HookAction, error)) error { 80 c.HookCalled = true 81 if c.HookHook != nil { 82 if _, err := fn(c.HookHook); err != nil { 83 return err 84 } 85 } 86 87 return c.HookError 88 } 89 90 func (c *MockEvalContext) Input() UIInput { 91 c.InputCalled = true 92 return c.InputInput 93 } 94 95 func (c *MockEvalContext) InitProvider(n string) (ResourceProvider, error) { 96 c.InitProviderCalled = true 97 c.InitProviderName = n 98 return c.InitProviderProvider, c.InitProviderError 99 } 100 101 func (c *MockEvalContext) Provider(n string) ResourceProvider { 102 c.ProviderCalled = true 103 c.ProviderName = n 104 return c.ProviderProvider 105 } 106 107 func (c *MockEvalContext) ConfigureProvider(n string, cfg *ResourceConfig) error { 108 c.ConfigureProviderCalled = true 109 c.ConfigureProviderName = n 110 c.ConfigureProviderConfig = cfg 111 return c.ConfigureProviderError 112 } 113 114 func (c *MockEvalContext) SetProviderConfig( 115 n string, cfg *ResourceConfig) error { 116 c.SetProviderConfigCalled = true 117 c.SetProviderConfigName = n 118 c.SetProviderConfigConfig = cfg 119 return nil 120 } 121 122 func (c *MockEvalContext) ParentProviderConfig(n string) *ResourceConfig { 123 c.ParentProviderConfigCalled = true 124 c.ParentProviderConfigName = n 125 return c.ParentProviderConfigConfig 126 } 127 128 func (c *MockEvalContext) ProviderInput(n string) map[string]interface{} { 129 c.ProviderInputCalled = true 130 c.ProviderInputName = n 131 return c.ProviderInputConfig 132 } 133 134 func (c *MockEvalContext) SetProviderInput(n string, cfg map[string]interface{}) { 135 c.SetProviderInputCalled = true 136 c.SetProviderInputName = n 137 c.SetProviderInputConfig = cfg 138 } 139 140 func (c *MockEvalContext) InitProvisioner(n string) (ResourceProvisioner, error) { 141 c.InitProvisionerCalled = true 142 c.InitProvisionerName = n 143 return c.InitProvisionerProvisioner, c.InitProvisionerError 144 } 145 146 func (c *MockEvalContext) Provisioner(n string) ResourceProvisioner { 147 c.ProvisionerCalled = true 148 c.ProvisionerName = n 149 return c.ProvisionerProvisioner 150 } 151 152 func (c *MockEvalContext) Interpolate( 153 config *config.RawConfig, resource *Resource) (*ResourceConfig, error) { 154 c.InterpolateCalled = true 155 c.InterpolateConfig = config 156 c.InterpolateResource = resource 157 return c.InterpolateConfigResult, c.InterpolateError 158 } 159 160 func (c *MockEvalContext) Path() []string { 161 c.PathCalled = true 162 return c.PathPath 163 } 164 165 func (c *MockEvalContext) SetVariables(vs map[string]string) { 166 c.SetVariablesCalled = true 167 c.SetVariablesVariables = vs 168 } 169 170 func (c *MockEvalContext) Diff() (*Diff, *sync.RWMutex) { 171 c.DiffCalled = true 172 return c.DiffDiff, c.DiffLock 173 } 174 175 func (c *MockEvalContext) State() (*State, *sync.RWMutex) { 176 c.StateCalled = true 177 return c.StateState, c.StateLock 178 }