github.com/vtorhonen/terraform@v0.9.0-beta2.0.20170307220345-5d894e4ffda7/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  	StoppedCalled bool
    13  	StoppedValue  <-chan struct{}
    14  
    15  	HookCalled bool
    16  	HookHook   Hook
    17  	HookError  error
    18  
    19  	InputCalled bool
    20  	InputInput  UIInput
    21  
    22  	InitProviderCalled   bool
    23  	InitProviderName     string
    24  	InitProviderProvider ResourceProvider
    25  	InitProviderError    error
    26  
    27  	ProviderCalled   bool
    28  	ProviderName     string
    29  	ProviderProvider ResourceProvider
    30  
    31  	CloseProviderCalled   bool
    32  	CloseProviderName     string
    33  	CloseProviderProvider ResourceProvider
    34  
    35  	ProviderInputCalled bool
    36  	ProviderInputName   string
    37  	ProviderInputConfig map[string]interface{}
    38  
    39  	SetProviderInputCalled bool
    40  	SetProviderInputName   string
    41  	SetProviderInputConfig map[string]interface{}
    42  
    43  	ConfigureProviderCalled bool
    44  	ConfigureProviderName   string
    45  	ConfigureProviderConfig *ResourceConfig
    46  	ConfigureProviderError  error
    47  
    48  	SetProviderConfigCalled bool
    49  	SetProviderConfigName   string
    50  	SetProviderConfigConfig *ResourceConfig
    51  
    52  	ParentProviderConfigCalled bool
    53  	ParentProviderConfigName   string
    54  	ParentProviderConfigConfig *ResourceConfig
    55  
    56  	InitProvisionerCalled      bool
    57  	InitProvisionerName        string
    58  	InitProvisionerProvisioner ResourceProvisioner
    59  	InitProvisionerError       error
    60  
    61  	ProvisionerCalled      bool
    62  	ProvisionerName        string
    63  	ProvisionerProvisioner ResourceProvisioner
    64  
    65  	CloseProvisionerCalled      bool
    66  	CloseProvisionerName        string
    67  	CloseProvisionerProvisioner ResourceProvisioner
    68  
    69  	InterpolateCalled       bool
    70  	InterpolateConfig       *config.RawConfig
    71  	InterpolateResource     *Resource
    72  	InterpolateConfigResult *ResourceConfig
    73  	InterpolateError        error
    74  
    75  	PathCalled bool
    76  	PathPath   []string
    77  
    78  	SetVariablesCalled    bool
    79  	SetVariablesModule    string
    80  	SetVariablesVariables map[string]interface{}
    81  
    82  	DiffCalled bool
    83  	DiffDiff   *Diff
    84  	DiffLock   *sync.RWMutex
    85  
    86  	StateCalled bool
    87  	StateState  *State
    88  	StateLock   *sync.RWMutex
    89  }
    90  
    91  func (c *MockEvalContext) Stopped() <-chan struct{} {
    92  	c.StoppedCalled = true
    93  	return c.StoppedValue
    94  }
    95  
    96  func (c *MockEvalContext) Hook(fn func(Hook) (HookAction, error)) error {
    97  	c.HookCalled = true
    98  	if c.HookHook != nil {
    99  		if _, err := fn(c.HookHook); err != nil {
   100  			return err
   101  		}
   102  	}
   103  
   104  	return c.HookError
   105  }
   106  
   107  func (c *MockEvalContext) Input() UIInput {
   108  	c.InputCalled = true
   109  	return c.InputInput
   110  }
   111  
   112  func (c *MockEvalContext) InitProvider(n string) (ResourceProvider, error) {
   113  	c.InitProviderCalled = true
   114  	c.InitProviderName = n
   115  	return c.InitProviderProvider, c.InitProviderError
   116  }
   117  
   118  func (c *MockEvalContext) Provider(n string) ResourceProvider {
   119  	c.ProviderCalled = true
   120  	c.ProviderName = n
   121  	return c.ProviderProvider
   122  }
   123  
   124  func (c *MockEvalContext) CloseProvider(n string) error {
   125  	c.CloseProviderCalled = true
   126  	c.CloseProviderName = n
   127  	return nil
   128  }
   129  
   130  func (c *MockEvalContext) ConfigureProvider(n string, cfg *ResourceConfig) error {
   131  	c.ConfigureProviderCalled = true
   132  	c.ConfigureProviderName = n
   133  	c.ConfigureProviderConfig = cfg
   134  	return c.ConfigureProviderError
   135  }
   136  
   137  func (c *MockEvalContext) SetProviderConfig(
   138  	n string, cfg *ResourceConfig) error {
   139  	c.SetProviderConfigCalled = true
   140  	c.SetProviderConfigName = n
   141  	c.SetProviderConfigConfig = cfg
   142  	return nil
   143  }
   144  
   145  func (c *MockEvalContext) ParentProviderConfig(n string) *ResourceConfig {
   146  	c.ParentProviderConfigCalled = true
   147  	c.ParentProviderConfigName = n
   148  	return c.ParentProviderConfigConfig
   149  }
   150  
   151  func (c *MockEvalContext) ProviderInput(n string) map[string]interface{} {
   152  	c.ProviderInputCalled = true
   153  	c.ProviderInputName = n
   154  	return c.ProviderInputConfig
   155  }
   156  
   157  func (c *MockEvalContext) SetProviderInput(n string, cfg map[string]interface{}) {
   158  	c.SetProviderInputCalled = true
   159  	c.SetProviderInputName = n
   160  	c.SetProviderInputConfig = cfg
   161  }
   162  
   163  func (c *MockEvalContext) InitProvisioner(n string) (ResourceProvisioner, error) {
   164  	c.InitProvisionerCalled = true
   165  	c.InitProvisionerName = n
   166  	return c.InitProvisionerProvisioner, c.InitProvisionerError
   167  }
   168  
   169  func (c *MockEvalContext) Provisioner(n string) ResourceProvisioner {
   170  	c.ProvisionerCalled = true
   171  	c.ProvisionerName = n
   172  	return c.ProvisionerProvisioner
   173  }
   174  
   175  func (c *MockEvalContext) CloseProvisioner(n string) error {
   176  	c.CloseProvisionerCalled = true
   177  	c.CloseProvisionerName = n
   178  	return nil
   179  }
   180  
   181  func (c *MockEvalContext) Interpolate(
   182  	config *config.RawConfig, resource *Resource) (*ResourceConfig, error) {
   183  	c.InterpolateCalled = true
   184  	c.InterpolateConfig = config
   185  	c.InterpolateResource = resource
   186  	return c.InterpolateConfigResult, c.InterpolateError
   187  }
   188  
   189  func (c *MockEvalContext) Path() []string {
   190  	c.PathCalled = true
   191  	return c.PathPath
   192  }
   193  
   194  func (c *MockEvalContext) SetVariables(n string, vs map[string]interface{}) {
   195  	c.SetVariablesCalled = true
   196  	c.SetVariablesModule = n
   197  	c.SetVariablesVariables = vs
   198  }
   199  
   200  func (c *MockEvalContext) Diff() (*Diff, *sync.RWMutex) {
   201  	c.DiffCalled = true
   202  	return c.DiffDiff, c.DiffLock
   203  }
   204  
   205  func (c *MockEvalContext) State() (*State, *sync.RWMutex) {
   206  	c.StateCalled = true
   207  	return c.StateState, c.StateLock
   208  }