github.com/nov1n/terraform@v0.7.9-0.20161103151050-bf6852f38e28/terraform/hook_mock.go (about) 1 package terraform 2 3 import "sync" 4 5 // MockHook is an implementation of Hook that can be used for tests. 6 // It records all of its function calls. 7 type MockHook struct { 8 sync.Mutex 9 10 PreApplyCalled bool 11 PreApplyInfo *InstanceInfo 12 PreApplyDiff *InstanceDiff 13 PreApplyState *InstanceState 14 PreApplyReturn HookAction 15 PreApplyError error 16 17 PostApplyCalled bool 18 PostApplyInfo *InstanceInfo 19 PostApplyState *InstanceState 20 PostApplyError error 21 PostApplyReturn HookAction 22 PostApplyReturnError error 23 PostApplyFn func(*InstanceInfo, *InstanceState, error) (HookAction, error) 24 25 PreDiffCalled bool 26 PreDiffInfo *InstanceInfo 27 PreDiffState *InstanceState 28 PreDiffReturn HookAction 29 PreDiffError error 30 31 PostDiffCalled bool 32 PostDiffInfo *InstanceInfo 33 PostDiffDiff *InstanceDiff 34 PostDiffReturn HookAction 35 PostDiffError error 36 37 PreProvisionResourceCalled bool 38 PreProvisionResourceInfo *InstanceInfo 39 PreProvisionInstanceState *InstanceState 40 PreProvisionResourceReturn HookAction 41 PreProvisionResourceError error 42 43 PostProvisionResourceCalled bool 44 PostProvisionResourceInfo *InstanceInfo 45 PostProvisionInstanceState *InstanceState 46 PostProvisionResourceReturn HookAction 47 PostProvisionResourceError error 48 49 PreProvisionCalled bool 50 PreProvisionInfo *InstanceInfo 51 PreProvisionProvisionerId string 52 PreProvisionReturn HookAction 53 PreProvisionError error 54 55 PostProvisionCalled bool 56 PostProvisionInfo *InstanceInfo 57 PostProvisionProvisionerId string 58 PostProvisionReturn HookAction 59 PostProvisionError error 60 61 ProvisionOutputCalled bool 62 ProvisionOutputInfo *InstanceInfo 63 ProvisionOutputProvisionerId string 64 ProvisionOutputMessage string 65 66 PostRefreshCalled bool 67 PostRefreshInfo *InstanceInfo 68 PostRefreshState *InstanceState 69 PostRefreshReturn HookAction 70 PostRefreshError error 71 72 PreRefreshCalled bool 73 PreRefreshInfo *InstanceInfo 74 PreRefreshState *InstanceState 75 PreRefreshReturn HookAction 76 PreRefreshError error 77 78 PreImportStateCalled bool 79 PreImportStateInfo *InstanceInfo 80 PreImportStateId string 81 PreImportStateReturn HookAction 82 PreImportStateError error 83 84 PostImportStateCalled bool 85 PostImportStateInfo *InstanceInfo 86 PostImportStateState []*InstanceState 87 PostImportStateReturn HookAction 88 PostImportStateError error 89 90 PostStateUpdateCalled bool 91 PostStateUpdateState *State 92 PostStateUpdateReturn HookAction 93 PostStateUpdateError error 94 } 95 96 func (h *MockHook) PreApply(n *InstanceInfo, s *InstanceState, d *InstanceDiff) (HookAction, error) { 97 h.Lock() 98 defer h.Unlock() 99 100 h.PreApplyCalled = true 101 h.PreApplyInfo = n 102 h.PreApplyDiff = d 103 h.PreApplyState = s 104 return h.PreApplyReturn, h.PreApplyError 105 } 106 107 func (h *MockHook) PostApply(n *InstanceInfo, s *InstanceState, e error) (HookAction, error) { 108 h.Lock() 109 defer h.Unlock() 110 111 h.PostApplyCalled = true 112 h.PostApplyInfo = n 113 h.PostApplyState = s 114 h.PostApplyError = e 115 116 if h.PostApplyFn != nil { 117 return h.PostApplyFn(n, s, e) 118 } 119 120 return h.PostApplyReturn, h.PostApplyReturnError 121 } 122 123 func (h *MockHook) PreDiff(n *InstanceInfo, s *InstanceState) (HookAction, error) { 124 h.Lock() 125 defer h.Unlock() 126 127 h.PreDiffCalled = true 128 h.PreDiffInfo = n 129 h.PreDiffState = s 130 return h.PreDiffReturn, h.PreDiffError 131 } 132 133 func (h *MockHook) PostDiff(n *InstanceInfo, d *InstanceDiff) (HookAction, error) { 134 h.Lock() 135 defer h.Unlock() 136 137 h.PostDiffCalled = true 138 h.PostDiffInfo = n 139 h.PostDiffDiff = d 140 return h.PostDiffReturn, h.PostDiffError 141 } 142 143 func (h *MockHook) PreProvisionResource(n *InstanceInfo, s *InstanceState) (HookAction, error) { 144 h.Lock() 145 defer h.Unlock() 146 147 h.PreProvisionResourceCalled = true 148 h.PreProvisionResourceInfo = n 149 h.PreProvisionInstanceState = s 150 return h.PreProvisionResourceReturn, h.PreProvisionResourceError 151 } 152 153 func (h *MockHook) PostProvisionResource(n *InstanceInfo, s *InstanceState) (HookAction, error) { 154 h.Lock() 155 defer h.Unlock() 156 157 h.PostProvisionResourceCalled = true 158 h.PostProvisionResourceInfo = n 159 h.PostProvisionInstanceState = s 160 return h.PostProvisionResourceReturn, h.PostProvisionResourceError 161 } 162 163 func (h *MockHook) PreProvision(n *InstanceInfo, provId string) (HookAction, error) { 164 h.Lock() 165 defer h.Unlock() 166 167 h.PreProvisionCalled = true 168 h.PreProvisionInfo = n 169 h.PreProvisionProvisionerId = provId 170 return h.PreProvisionReturn, h.PreProvisionError 171 } 172 173 func (h *MockHook) PostProvision(n *InstanceInfo, provId string) (HookAction, error) { 174 h.Lock() 175 defer h.Unlock() 176 177 h.PostProvisionCalled = true 178 h.PostProvisionInfo = n 179 h.PostProvisionProvisionerId = provId 180 return h.PostProvisionReturn, h.PostProvisionError 181 } 182 183 func (h *MockHook) ProvisionOutput( 184 n *InstanceInfo, 185 provId string, 186 msg string) { 187 h.Lock() 188 defer h.Unlock() 189 190 h.ProvisionOutputCalled = true 191 h.ProvisionOutputInfo = n 192 h.ProvisionOutputProvisionerId = provId 193 h.ProvisionOutputMessage = msg 194 } 195 196 func (h *MockHook) PreRefresh(n *InstanceInfo, s *InstanceState) (HookAction, error) { 197 h.Lock() 198 defer h.Unlock() 199 200 h.PreRefreshCalled = true 201 h.PreRefreshInfo = n 202 h.PreRefreshState = s 203 return h.PreRefreshReturn, h.PreRefreshError 204 } 205 206 func (h *MockHook) PostRefresh(n *InstanceInfo, s *InstanceState) (HookAction, error) { 207 h.Lock() 208 defer h.Unlock() 209 210 h.PostRefreshCalled = true 211 h.PostRefreshInfo = n 212 h.PostRefreshState = s 213 return h.PostRefreshReturn, h.PostRefreshError 214 } 215 216 func (h *MockHook) PreImportState(info *InstanceInfo, id string) (HookAction, error) { 217 h.Lock() 218 defer h.Unlock() 219 220 h.PreImportStateCalled = true 221 h.PreImportStateInfo = info 222 h.PreImportStateId = id 223 return h.PreImportStateReturn, h.PreImportStateError 224 } 225 226 func (h *MockHook) PostImportState(info *InstanceInfo, s []*InstanceState) (HookAction, error) { 227 h.Lock() 228 defer h.Unlock() 229 230 h.PostImportStateCalled = true 231 h.PostImportStateInfo = info 232 h.PostImportStateState = s 233 return h.PostImportStateReturn, h.PostImportStateError 234 } 235 236 func (h *MockHook) PostStateUpdate(s *State) (HookAction, error) { 237 h.Lock() 238 defer h.Unlock() 239 240 h.PostStateUpdateCalled = true 241 h.PostStateUpdateState = s 242 return h.PostStateUpdateReturn, h.PostStateUpdateError 243 }