github.com/recobe182/terraform@v0.8.5-0.20170117231232-49ab22a935b7/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  }