github.com/rothwerx/packer@v0.9.0/builder/docker/driver_mock.go (about)

     1  package docker
     2  
     3  import (
     4  	"io"
     5  
     6  	"github.com/hashicorp/go-version"
     7  )
     8  
     9  // MockDriver is a driver implementation that can be used for tests.
    10  type MockDriver struct {
    11  	CommitCalled      bool
    12  	CommitContainerId string
    13  	CommitImageId     string
    14  	CommitErr         error
    15  
    16  	DeleteImageCalled bool
    17  	DeleteImageId     string
    18  	DeleteImageErr    error
    19  
    20  	ImportCalled bool
    21  	ImportPath   string
    22  	ImportRepo   string
    23  	ImportId     string
    24  	ImportErr    error
    25  
    26  	IPAddressCalled bool
    27  	IPAddressID     string
    28  	IPAddressResult string
    29  	IPAddressErr    error
    30  
    31  	LoginCalled   bool
    32  	LoginEmail    string
    33  	LoginUsername string
    34  	LoginPassword string
    35  	LoginRepo     string
    36  	LoginErr      error
    37  
    38  	LogoutCalled bool
    39  	LogoutRepo   string
    40  	LogoutErr    error
    41  
    42  	PushCalled bool
    43  	PushName   string
    44  	PushErr    error
    45  
    46  	SaveImageCalled bool
    47  	SaveImageId     string
    48  	SaveImageReader io.Reader
    49  	SaveImageError  error
    50  
    51  	TagImageCalled  bool
    52  	TagImageImageId string
    53  	TagImageRepo    string
    54  	TagImageForce   bool
    55  	TagImageErr     error
    56  
    57  	ExportReader io.Reader
    58  	ExportError  error
    59  	PullError    error
    60  	StartID      string
    61  	StartError   error
    62  	StopError    error
    63  	VerifyError  error
    64  
    65  	ExportCalled bool
    66  	ExportID     string
    67  	PullCalled   bool
    68  	PullImage    string
    69  	StartCalled  bool
    70  	StartConfig  *ContainerConfig
    71  	StopCalled   bool
    72  	StopID       string
    73  	VerifyCalled bool
    74  
    75  	VersionCalled  bool
    76  	VersionVersion string
    77  }
    78  
    79  func (d *MockDriver) Commit(id string) (string, error) {
    80  	d.CommitCalled = true
    81  	d.CommitContainerId = id
    82  	return d.CommitImageId, d.CommitErr
    83  }
    84  
    85  func (d *MockDriver) DeleteImage(id string) error {
    86  	d.DeleteImageCalled = true
    87  	d.DeleteImageId = id
    88  	return d.DeleteImageErr
    89  }
    90  
    91  func (d *MockDriver) Export(id string, dst io.Writer) error {
    92  	d.ExportCalled = true
    93  	d.ExportID = id
    94  
    95  	if d.ExportReader != nil {
    96  		_, err := io.Copy(dst, d.ExportReader)
    97  		if err != nil {
    98  			return err
    99  		}
   100  	}
   101  
   102  	return d.ExportError
   103  }
   104  
   105  func (d *MockDriver) Import(path, repo string) (string, error) {
   106  	d.ImportCalled = true
   107  	d.ImportPath = path
   108  	d.ImportRepo = repo
   109  	return d.ImportId, d.ImportErr
   110  }
   111  
   112  func (d *MockDriver) IPAddress(id string) (string, error) {
   113  	d.IPAddressCalled = true
   114  	d.IPAddressID = id
   115  	return d.IPAddressResult, d.IPAddressErr
   116  }
   117  
   118  func (d *MockDriver) Login(r, e, u, p string) error {
   119  	d.LoginCalled = true
   120  	d.LoginRepo = r
   121  	d.LoginEmail = e
   122  	d.LoginUsername = u
   123  	d.LoginPassword = p
   124  	return d.LoginErr
   125  }
   126  
   127  func (d *MockDriver) Logout(r string) error {
   128  	d.LogoutCalled = true
   129  	d.LogoutRepo = r
   130  	return d.LogoutErr
   131  }
   132  
   133  func (d *MockDriver) Pull(image string) error {
   134  	d.PullCalled = true
   135  	d.PullImage = image
   136  	return d.PullError
   137  }
   138  
   139  func (d *MockDriver) Push(name string) error {
   140  	d.PushCalled = true
   141  	d.PushName = name
   142  	return d.PushErr
   143  }
   144  
   145  func (d *MockDriver) SaveImage(id string, dst io.Writer) error {
   146  	d.SaveImageCalled = true
   147  	d.SaveImageId = id
   148  
   149  	if d.SaveImageReader != nil {
   150  		_, err := io.Copy(dst, d.SaveImageReader)
   151  		if err != nil {
   152  			return err
   153  		}
   154  	}
   155  
   156  	return d.SaveImageError
   157  }
   158  
   159  func (d *MockDriver) StartContainer(config *ContainerConfig) (string, error) {
   160  	d.StartCalled = true
   161  	d.StartConfig = config
   162  	return d.StartID, d.StartError
   163  }
   164  
   165  func (d *MockDriver) StopContainer(id string) error {
   166  	d.StopCalled = true
   167  	d.StopID = id
   168  	return d.StopError
   169  }
   170  
   171  func (d *MockDriver) TagImage(id string, repo string, force bool) error {
   172  	d.TagImageCalled = true
   173  	d.TagImageImageId = id
   174  	d.TagImageRepo = repo
   175  	d.TagImageForce = force
   176  	return d.TagImageErr
   177  }
   178  
   179  func (d *MockDriver) Verify() error {
   180  	d.VerifyCalled = true
   181  	return d.VerifyError
   182  }
   183  
   184  func (d *MockDriver) Version() (*version.Version, error) {
   185  	d.VersionCalled = true
   186  	return version.NewVersion(d.VersionVersion)
   187  }