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