64 lines
1.1 KiB
Go
64 lines
1.1 KiB
Go
package docker
|
|
|
|
import (
|
|
"io"
|
|
)
|
|
|
|
// MockDriver is a driver implementation that can be used for tests.
|
|
type MockDriver struct {
|
|
ExportReader io.Reader
|
|
ExportError error
|
|
PullError error
|
|
StartID string
|
|
StartError error
|
|
StopError error
|
|
VerifyError error
|
|
|
|
ExportCalled bool
|
|
ExportID string
|
|
PullCalled bool
|
|
PullImage string
|
|
StartCalled bool
|
|
StartConfig *ContainerConfig
|
|
StopCalled bool
|
|
StopID string
|
|
VerifyCalled bool
|
|
}
|
|
|
|
func (d *MockDriver) Export(id string, dst io.Writer) error {
|
|
d.ExportCalled = true
|
|
d.ExportID = id
|
|
|
|
if d.ExportReader != nil {
|
|
_, err := io.Copy(dst, d.ExportReader)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return d.ExportError
|
|
}
|
|
|
|
func (d *MockDriver) Pull(image string) error {
|
|
d.PullCalled = true
|
|
d.PullImage = image
|
|
return d.PullError
|
|
}
|
|
|
|
func (d *MockDriver) StartContainer(config *ContainerConfig) (string, error) {
|
|
d.StartCalled = true
|
|
d.StartConfig = config
|
|
return d.StartID, d.StartError
|
|
}
|
|
|
|
func (d *MockDriver) StopContainer(id string) error {
|
|
d.StopCalled = true
|
|
d.StopID = id
|
|
return d.StopError
|
|
}
|
|
|
|
func (d *MockDriver) Verify() error {
|
|
d.VerifyCalled = true
|
|
return d.VerifyError
|
|
}
|