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