github.com/mitchellh/packer@v1.3.2/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  	LoginUsername string
    33  	LoginPassword string
    34  	LoginRepo     string
    35  	LoginErr      error
    36  
    37  	LogoutCalled bool
    38  	LogoutRepo   string
    39  	LogoutErr    error
    40  
    41  	PushCalled bool
    42  	PushName   string
    43  	PushErr    error
    44  
    45  	SaveImageCalled bool
    46  	SaveImageId     string
    47  	SaveImageReader io.Reader
    48  	SaveImageError  error
    49  
    50  	TagImageCalled  bool
    51  	TagImageImageId string
    52  	TagImageRepo    string
    53  	TagImageForce   bool
    54  	TagImageErr     error
    55  
    56  	ExportReader io.Reader
    57  	ExportError  error
    58  	PullError    error
    59  	StartID      string
    60  	StartError   error
    61  	StopError    error
    62  	VerifyError  error
    63  
    64  	ExportCalled bool
    65  	ExportID     string
    66  	PullCalled   bool
    67  	PullImage    string
    68  	StartCalled  bool
    69  	StartConfig  *ContainerConfig
    70  	StopCalled   bool
    71  	StopID       string
    72  	VerifyCalled bool
    73  
    74  	VersionCalled  bool
    75  	VersionVersion string
    76  }
    77  
    78  func (d *MockDriver) Commit(id string, author string, changes []string, message string) (string, error) {
    79  	d.CommitCalled = true
    80  	d.CommitContainerId = id
    81  	return d.CommitImageId, d.CommitErr
    82  }
    83  
    84  func (d *MockDriver) DeleteImage(id string) error {
    85  	d.DeleteImageCalled = true
    86  	d.DeleteImageId = id
    87  	return d.DeleteImageErr
    88  }
    89  
    90  func (d *MockDriver) Export(id string, dst io.Writer) error {
    91  	d.ExportCalled = true
    92  	d.ExportID = id
    93  
    94  	if d.ExportReader != nil {
    95  		_, err := io.Copy(dst, d.ExportReader)
    96  		if err != nil {
    97  			return err
    98  		}
    99  	}
   100  
   101  	return d.ExportError
   102  }
   103  
   104  func (d *MockDriver) Import(path, repo string) (string, error) {
   105  	d.ImportCalled = true
   106  	d.ImportPath = path
   107  	d.ImportRepo = repo
   108  	return d.ImportId, d.ImportErr
   109  }
   110  
   111  func (d *MockDriver) IPAddress(id string) (string, error) {
   112  	d.IPAddressCalled = true
   113  	d.IPAddressID = id
   114  	return d.IPAddressResult, d.IPAddressErr
   115  }
   116  
   117  func (d *MockDriver) Login(r, u, p string) error {
   118  	d.LoginCalled = true
   119  	d.LoginRepo = r
   120  	d.LoginUsername = u
   121  	d.LoginPassword = p
   122  	return d.LoginErr
   123  }
   124  
   125  func (d *MockDriver) Logout(r string) error {
   126  	d.LogoutCalled = true
   127  	d.LogoutRepo = r
   128  	return d.LogoutErr
   129  }
   130  
   131  func (d *MockDriver) Pull(image string) error {
   132  	d.PullCalled = true
   133  	d.PullImage = image
   134  	return d.PullError
   135  }
   136  
   137  func (d *MockDriver) Push(name string) error {
   138  	d.PushCalled = true
   139  	d.PushName = name
   140  	return d.PushErr
   141  }
   142  
   143  func (d *MockDriver) SaveImage(id string, dst io.Writer) error {
   144  	d.SaveImageCalled = true
   145  	d.SaveImageId = id
   146  
   147  	if d.SaveImageReader != nil {
   148  		_, err := io.Copy(dst, d.SaveImageReader)
   149  		if err != nil {
   150  			return err
   151  		}
   152  	}
   153  
   154  	return d.SaveImageError
   155  }
   156  
   157  func (d *MockDriver) StartContainer(config *ContainerConfig) (string, error) {
   158  	d.StartCalled = true
   159  	d.StartConfig = config
   160  	return d.StartID, d.StartError
   161  }
   162  
   163  func (d *MockDriver) StopContainer(id string) error {
   164  	d.StopCalled = true
   165  	d.StopID = id
   166  	return d.StopError
   167  }
   168  
   169  func (d *MockDriver) TagImage(id string, repo string, force bool) error {
   170  	d.TagImageCalled = true
   171  	d.TagImageImageId = id
   172  	d.TagImageRepo = repo
   173  	d.TagImageForce = force
   174  	return d.TagImageErr
   175  }
   176  
   177  func (d *MockDriver) Verify() error {
   178  	d.VerifyCalled = true
   179  	return d.VerifyError
   180  }
   181  
   182  func (d *MockDriver) Version() (*version.Version, error) {
   183  	d.VersionCalled = true
   184  	return version.NewVersion(d.VersionVersion)
   185  }