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

200 lines
4.6 KiB
Go

package common
import "sync"
type DriverMock struct {
sync.Mutex
CreateSATAControllerVM string
CreateSATAControllerController string
CreateSATAControllerErr error
CreateSCSIControllerVM string
CreateSCSIControllerController string
CreateSCSIControllerErr error
CreateNVMeControllerVM string
CreateNVMeControllerController string
CreateNVMeControllerErr 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) CreateNVMeController(vm string, controller string, portcount int) error {
d.CreateNVMeControllerVM = vm
d.CreateNVMeControllerController = vm
return d.CreateNVMeControllerErr
}
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
}