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 }