packer-cn/builder/virtualbox/common/driver_mock.go

190 lines
4.3 KiB
Go

package common
import "sync"
type DriverMock struct {
sync.Mutex
CreateSATAControllerVM string
CreateSATAControllerController string
CreateSATAControllerErr error
CreateSCSIControllerVM string
CreateSCSIControllerController string
CreateSCSIControllerErr error
DeleteCalled bool
DeleteName string
DeleteErr error
ImportCalled bool
ImportName string
ImportPath string
ImportFlags []string
ImportErr error
IsoCalled bool
IsoErr error
IsRunningName string
IsRunningReturn bool
IsRunningErr error
StopName string
StopErr error
SuppressMessagesCalled bool
SuppressMessagesErr error
VBoxManageCalls [][]string
VBoxManageErrs []error
VerifyCalled bool
VerifyErr error
VersionCalled bool
VersionResult string
VersionErr error
LoadSnapshotsCalled []string
LoadSnapshotsResult *VBoxSnapshot
CreateSnapshotCalled []string
CreateSnapshotError error
HasSnapshotsCalled []string
HasSnapshotsResult bool
GetCurrentSnapshotCalled []string
GetCurrentSnapshotResult *VBoxSnapshot
SetSnapshotCalled []*VBoxSnapshot
DeleteSnapshotCalled []*VBoxSnapshot
}
func (d *DriverMock) CreateSATAController(vm string, controller string, portcount int) error {
d.CreateSATAControllerVM = vm
d.CreateSATAControllerController = vm
return d.CreateSATAControllerErr
}
func (d *DriverMock) CreateSCSIController(vm string, controller string) error {
d.CreateSCSIControllerVM = vm
d.CreateSCSIControllerController = vm
return d.CreateSCSIControllerErr
}
func (d *DriverMock) Delete(name string) error {
d.DeleteCalled = true
d.DeleteName = name
return d.DeleteErr
}
func (d *DriverMock) Import(name string, path string, flags []string) error {
d.ImportCalled = true
d.ImportName = name
d.ImportPath = path
d.ImportFlags = flags
return d.ImportErr
}
func (d *DriverMock) Iso() (string, error) {
d.IsoCalled = true
return "", d.IsoErr
}
func (d *DriverMock) IsRunning(name string) (bool, error) {
d.Lock()
defer d.Unlock()
d.IsRunningName = name
return d.IsRunningReturn, d.IsRunningErr
}
func (d *DriverMock) Stop(name string) error {
d.StopName = name
return d.StopErr
}
func (d *DriverMock) SuppressMessages() error {
d.SuppressMessagesCalled = true
return d.SuppressMessagesErr
}
func (d *DriverMock) VBoxManage(args ...string) error {
d.VBoxManageCalls = append(d.VBoxManageCalls, args)
if len(d.VBoxManageErrs) >= len(d.VBoxManageCalls) {
return d.VBoxManageErrs[len(d.VBoxManageCalls)-1]
}
return nil
}
func (d *DriverMock) Verify() error {
d.VerifyCalled = true
return d.VerifyErr
}
func (d *DriverMock) Version() (string, error) {
d.VersionCalled = true
return d.VersionResult, d.VersionErr
}
func (d *DriverMock) LoadSnapshots(vmName string) (*VBoxSnapshot, error) {
if vmName == "" {
panic("Argument empty exception: vmName")
}
d.LoadSnapshotsCalled = append(d.LoadSnapshotsCalled, vmName)
return d.LoadSnapshotsResult, nil
}
func (d *DriverMock) CreateSnapshot(vmName string, snapshotName string) error {
if vmName == "" {
panic("Argument empty exception: vmName")
}
if snapshotName == "" {
panic("Argument empty exception: snapshotName")
}
d.CreateSnapshotCalled = append(d.CreateSnapshotCalled, snapshotName)
return d.CreateSnapshotError
}
func (d *DriverMock) HasSnapshots(vmName string) (bool, error) {
if vmName == "" {
panic("Argument empty exception: vmName")
}
d.HasSnapshotsCalled = append(d.HasSnapshotsCalled, vmName)
return d.HasSnapshotsResult, nil
}
func (d *DriverMock) GetCurrentSnapshot(vmName string) (*VBoxSnapshot, error) {
if vmName == "" {
panic("Argument empty exception: vmName")
}
d.GetCurrentSnapshotCalled = append(d.GetCurrentSnapshotCalled, vmName)
return d.GetCurrentSnapshotResult, nil
}
func (d *DriverMock) SetSnapshot(vmName string, snapshot *VBoxSnapshot) error {
if vmName == "" {
panic("Argument empty exception: vmName")
}
if snapshot == nil {
panic("Argument empty exception: snapshot")
}
d.SetSnapshotCalled = append(d.SetSnapshotCalled, snapshot)
return nil
}
func (d *DriverMock) DeleteSnapshot(vmName string, snapshot *VBoxSnapshot) error {
if vmName == "" {
panic("Argument empty exception: vmName")
}
if snapshot == nil {
panic("Argument empty exception: snapshot")
}
d.DeleteSnapshotCalled = append(d.DeleteSnapshotCalled, snapshot)
return nil
}