2015-04-08 09:49:52 -04:00
|
|
|
package virtualbox
|
|
|
|
|
|
|
|
|
|
import (
|
2015-12-30 12:19:10 +01:00
|
|
|
"errors"
|
2015-04-08 09:49:52 -04:00
|
|
|
"testing"
|
2015-11-19 19:39:02 +01:00
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
2015-04-08 09:49:52 -04:00
|
|
|
)
|
|
|
|
|
|
2015-11-24 10:22:34 +01:00
|
|
|
const stdOutDiskInfo = `
|
2015-04-08 09:49:52 -04:00
|
|
|
storagecontrollerbootable0="on"
|
|
|
|
|
"SATA-0-0"="/home/ehazlett/.boot2docker/boot2docker.iso"
|
|
|
|
|
"SATA-IsEjected"="off"
|
|
|
|
|
"SATA-1-0"="/home/ehazlett/vm/test/disk.vmdk"
|
|
|
|
|
"SATA-ImageUUID-1-0"="12345-abcdefg"
|
|
|
|
|
"SATA-2-0"="none"
|
2015-11-24 10:22:34 +01:00
|
|
|
nic1="nat"`
|
2015-04-08 09:49:52 -04:00
|
|
|
|
|
|
|
|
func TestVMDiskInfo(t *testing.T) {
|
2015-11-19 19:39:02 +01:00
|
|
|
vbox := &VBoxManagerMock{
|
|
|
|
|
args: "showvminfo default --machinereadable",
|
2015-11-24 10:22:34 +01:00
|
|
|
stdOut: stdOutDiskInfo,
|
2015-04-08 09:49:52 -04:00
|
|
|
}
|
|
|
|
|
|
2015-11-19 19:39:02 +01:00
|
|
|
disk, err := getVMDiskInfo("default", vbox)
|
|
|
|
|
|
|
|
|
|
assert.Equal(t, "/home/ehazlett/vm/test/disk.vmdk", disk.Path)
|
|
|
|
|
assert.Equal(t, "12345-abcdefg", disk.UUID)
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestVMDiskInfoError(t *testing.T) {
|
|
|
|
|
vbox := &VBoxManagerMock{
|
|
|
|
|
args: "showvminfo default --machinereadable",
|
|
|
|
|
err: errors.New("BUG"),
|
2015-04-08 09:49:52 -04:00
|
|
|
}
|
|
|
|
|
|
2015-11-19 19:39:02 +01:00
|
|
|
disk, err := getVMDiskInfo("default", vbox)
|
|
|
|
|
|
|
|
|
|
assert.Nil(t, disk)
|
|
|
|
|
assert.EqualError(t, err, "BUG")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestVMDiskInfoInvalidOutput(t *testing.T) {
|
|
|
|
|
vbox := &VBoxManagerMock{
|
|
|
|
|
args: "showvminfo default --machinereadable",
|
|
|
|
|
stdOut: "INVALID",
|
2015-04-08 09:49:52 -04:00
|
|
|
}
|
2015-11-19 19:39:02 +01:00
|
|
|
|
|
|
|
|
disk, err := getVMDiskInfo("default", vbox)
|
|
|
|
|
|
|
|
|
|
assert.Empty(t, disk.Path)
|
|
|
|
|
assert.Empty(t, disk.UUID)
|
|
|
|
|
assert.NoError(t, err)
|
2015-04-08 09:49:52 -04:00
|
|
|
}
|