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