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