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 }