package volumetestutils import ( "fmt" "github.com/docker/docker/volume" ) // NoopVolume is a volume that doesn't perform any operation type NoopVolume struct{} // Name is the name of the volume func (NoopVolume) Name() string { return "noop" } // DriverName is the name of the driver func (NoopVolume) DriverName() string { return "noop" } // Path is the filesystem path to the volume func (NoopVolume) Path() string { return "noop" } // Mount mounts the volume in the container func (NoopVolume) Mount() (string, error) { return "noop", nil } // Unmount unmounts the volume from the container func (NoopVolume) Unmount() error { return nil } // FakeVolume is a fake volume with a random name type FakeVolume struct { name string } // NewFakeVolume creates a new fake volume for testing func NewFakeVolume(name string) volume.Volume { return FakeVolume{name: name} } // Name is the name of the volume func (f FakeVolume) Name() string { return f.name } // DriverName is the name of the driver func (FakeVolume) DriverName() string { return "fake" } // Path is the filesystem path to the volume func (FakeVolume) Path() string { return "fake" } // Mount mounts the volume in the container func (FakeVolume) Mount() (string, error) { return "fake", nil } // Unmount unmounts the volume from the container func (FakeVolume) Unmount() error { return nil } // FakeDriver is a driver that generates fake volumes type FakeDriver struct{} // Name is the name of the driver func (FakeDriver) Name() string { return "fake" } // Create initializes a fake volume. // It returns an error if the options include an "error" key with a message func (FakeDriver) Create(name string, opts map[string]string) (volume.Volume, error) { if opts != nil && opts["error"] != "" { return nil, fmt.Errorf(opts["error"]) } return NewFakeVolume(name), nil } // Remove deletes a volume. func (FakeDriver) Remove(v volume.Volume) error { return nil }