github.com/askholme/packer@v0.7.2-0.20140924152349-70d9566a6852/builder/docker/driver_mock.go (about)

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