github.com/daniellockard/packer@v0.7.6-0.20141210173435-5a9390934716/builder/googlecompute/driver_mock.go (about)

     1  package googlecompute
     2  
     3  // DriverMock is a Driver implementation that is a mocked out so that
     4  // it can be used for tests.
     5  type DriverMock struct {
     6  	ImageExistsName   string
     7  	ImageExistsResult bool
     8  
     9  	CreateImageName  string
    10  	CreateImageDesc  string
    11  	CreateImageZone  string
    12  	CreateImageDisk  string
    13  	CreateImageErrCh <-chan error
    14  
    15  	DeleteImageName  string
    16  	DeleteImageErrCh <-chan error
    17  
    18  	DeleteInstanceZone  string
    19  	DeleteInstanceName  string
    20  	DeleteInstanceErrCh <-chan error
    21  	DeleteInstanceErr   error
    22  
    23  	DeleteDiskZone  string
    24  	DeleteDiskName  string
    25  	DeleteDiskErrCh <-chan error
    26  	DeleteDiskErr   error
    27  
    28  	GetNatIPZone   string
    29  	GetNatIPName   string
    30  	GetNatIPResult string
    31  	GetNatIPErr    error
    32  
    33  	RunInstanceConfig *InstanceConfig
    34  	RunInstanceErrCh  <-chan error
    35  	RunInstanceErr    error
    36  
    37  	WaitForInstanceState string
    38  	WaitForInstanceZone  string
    39  	WaitForInstanceName  string
    40  	WaitForInstanceErrCh <-chan error
    41  }
    42  
    43  func (d *DriverMock) ImageExists(name string) bool {
    44  	d.ImageExistsName = name
    45  	return d.ImageExistsResult
    46  }
    47  
    48  func (d *DriverMock) CreateImage(name, description, zone, disk string) <-chan error {
    49  	d.CreateImageName = name
    50  	d.CreateImageDesc = description
    51  	d.CreateImageZone = zone
    52  	d.CreateImageDisk = disk
    53  
    54  	resultCh := d.CreateImageErrCh
    55  	if resultCh == nil {
    56  		ch := make(chan error)
    57  		close(ch)
    58  		resultCh = ch
    59  	}
    60  
    61  	return resultCh
    62  }
    63  
    64  func (d *DriverMock) DeleteImage(name string) <-chan error {
    65  	d.DeleteImageName = name
    66  
    67  	resultCh := d.DeleteImageErrCh
    68  	if resultCh == nil {
    69  		ch := make(chan error)
    70  		close(ch)
    71  		resultCh = ch
    72  	}
    73  
    74  	return resultCh
    75  }
    76  
    77  func (d *DriverMock) DeleteInstance(zone, name string) (<-chan error, error) {
    78  	d.DeleteInstanceZone = zone
    79  	d.DeleteInstanceName = name
    80  
    81  	resultCh := d.DeleteInstanceErrCh
    82  	if resultCh == nil {
    83  		ch := make(chan error)
    84  		close(ch)
    85  		resultCh = ch
    86  	}
    87  
    88  	return resultCh, d.DeleteInstanceErr
    89  }
    90  
    91  func (d *DriverMock) DeleteDisk(zone, name string) (<-chan error, error) {
    92  	d.DeleteDiskZone = zone
    93  	d.DeleteDiskName = name
    94  
    95  	resultCh := d.DeleteDiskErrCh
    96  	if resultCh == nil {
    97  		ch := make(chan error)
    98  		close(ch)
    99  		resultCh = ch
   100  	}
   101  
   102  	return resultCh, d.DeleteDiskErr
   103  }
   104  
   105  func (d *DriverMock) GetNatIP(zone, name string) (string, error) {
   106  	d.GetNatIPZone = zone
   107  	d.GetNatIPName = name
   108  	return d.GetNatIPResult, d.GetNatIPErr
   109  }
   110  
   111  func (d *DriverMock) RunInstance(c *InstanceConfig) (<-chan error, error) {
   112  	d.RunInstanceConfig = c
   113  
   114  	resultCh := d.RunInstanceErrCh
   115  	if resultCh == nil {
   116  		ch := make(chan error)
   117  		close(ch)
   118  		resultCh = ch
   119  	}
   120  
   121  	return resultCh, d.RunInstanceErr
   122  }
   123  
   124  func (d *DriverMock) WaitForInstance(state, zone, name string) <-chan error {
   125  	d.WaitForInstanceState = state
   126  	d.WaitForInstanceZone = zone
   127  	d.WaitForInstanceName = name
   128  
   129  	resultCh := d.WaitForInstanceErrCh
   130  	if resultCh == nil {
   131  		ch := make(chan error)
   132  		close(ch)
   133  		resultCh = ch
   134  	}
   135  
   136  	return resultCh
   137  }