github.com/marksheahan/packer@v0.10.2-0.20160613200515-1acb2d6645a0/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  	CreateImageFamily string
    12  	CreateImageZone   string
    13  	CreateImageDisk   string
    14  	CreateImageErrCh  <-chan error
    15  
    16  	DeleteImageName  string
    17  	DeleteImageErrCh <-chan error
    18  
    19  	DeleteInstanceZone  string
    20  	DeleteInstanceName  string
    21  	DeleteInstanceErrCh <-chan error
    22  	DeleteInstanceErr   error
    23  
    24  	DeleteDiskZone  string
    25  	DeleteDiskName  string
    26  	DeleteDiskErrCh <-chan error
    27  	DeleteDiskErr   error
    28  
    29  	GetNatIPZone   string
    30  	GetNatIPName   string
    31  	GetNatIPResult string
    32  	GetNatIPErr    error
    33  
    34  	GetInternalIPZone   string
    35  	GetInternalIPName   string
    36  	GetInternalIPResult string
    37  	GetInternalIPErr    error
    38  
    39  	RunInstanceConfig *InstanceConfig
    40  	RunInstanceErrCh  <-chan error
    41  	RunInstanceErr    error
    42  
    43  	WaitForInstanceState string
    44  	WaitForInstanceZone  string
    45  	WaitForInstanceName  string
    46  	WaitForInstanceErrCh <-chan error
    47  }
    48  
    49  func (d *DriverMock) ImageExists(name string) bool {
    50  	d.ImageExistsName = name
    51  	return d.ImageExistsResult
    52  }
    53  
    54  func (d *DriverMock) CreateImage(name, description, family, zone, disk string) <-chan error {
    55  	d.CreateImageName = name
    56  	d.CreateImageDesc = description
    57  	d.CreateImageFamily = family
    58  	d.CreateImageZone = zone
    59  	d.CreateImageDisk = disk
    60  
    61  	resultCh := d.CreateImageErrCh
    62  	if resultCh == nil {
    63  		ch := make(chan error)
    64  		close(ch)
    65  		resultCh = ch
    66  	}
    67  
    68  	return resultCh
    69  }
    70  
    71  func (d *DriverMock) DeleteImage(name string) <-chan error {
    72  	d.DeleteImageName = name
    73  
    74  	resultCh := d.DeleteImageErrCh
    75  	if resultCh == nil {
    76  		ch := make(chan error)
    77  		close(ch)
    78  		resultCh = ch
    79  	}
    80  
    81  	return resultCh
    82  }
    83  
    84  func (d *DriverMock) DeleteInstance(zone, name string) (<-chan error, error) {
    85  	d.DeleteInstanceZone = zone
    86  	d.DeleteInstanceName = name
    87  
    88  	resultCh := d.DeleteInstanceErrCh
    89  	if resultCh == nil {
    90  		ch := make(chan error)
    91  		close(ch)
    92  		resultCh = ch
    93  	}
    94  
    95  	return resultCh, d.DeleteInstanceErr
    96  }
    97  
    98  func (d *DriverMock) DeleteDisk(zone, name string) (<-chan error, error) {
    99  	d.DeleteDiskZone = zone
   100  	d.DeleteDiskName = name
   101  
   102  	resultCh := d.DeleteDiskErrCh
   103  	if resultCh == nil {
   104  		ch := make(chan error)
   105  		close(ch)
   106  		resultCh = ch
   107  	}
   108  
   109  	return resultCh, d.DeleteDiskErr
   110  }
   111  
   112  func (d *DriverMock) GetNatIP(zone, name string) (string, error) {
   113  	d.GetNatIPZone = zone
   114  	d.GetNatIPName = name
   115  	return d.GetNatIPResult, d.GetNatIPErr
   116  }
   117  
   118  func (d *DriverMock) GetInternalIP(zone, name string) (string, error) {
   119  	d.GetInternalIPZone = zone
   120  	d.GetInternalIPName = name
   121  	return d.GetInternalIPResult, d.GetInternalIPErr
   122  }
   123  
   124  func (d *DriverMock) RunInstance(c *InstanceConfig) (<-chan error, error) {
   125  	d.RunInstanceConfig = c
   126  
   127  	resultCh := d.RunInstanceErrCh
   128  	if resultCh == nil {
   129  		ch := make(chan error)
   130  		close(ch)
   131  		resultCh = ch
   132  	}
   133  
   134  	return resultCh, d.RunInstanceErr
   135  }
   136  
   137  func (d *DriverMock) WaitForInstance(state, zone, name string) <-chan error {
   138  	d.WaitForInstanceState = state
   139  	d.WaitForInstanceZone = zone
   140  	d.WaitForInstanceName = name
   141  
   142  	resultCh := d.WaitForInstanceErrCh
   143  	if resultCh == nil {
   144  		ch := make(chan error)
   145  		close(ch)
   146  		resultCh = ch
   147  	}
   148  
   149  	return resultCh
   150  }