Commit 7e991af4 authored by Mitchell Hashimoto's avatar Mitchell Hashimoto

builder/vmware/common: tests for StepPrepareTools

/cc @rasa - an example
parent 1b1d8712
...@@ -2,14 +2,14 @@ package common ...@@ -2,14 +2,14 @@ package common
import ( import (
"fmt" "fmt"
"github.com/mitchellh/multistep"
"os" "os"
"github.com/mitchellh/multistep"
) )
type StepPrepareTools struct { type StepPrepareTools struct {
RemoteType string `mapstructure:"remote_type"` RemoteType string
ToolsUploadFlavor string `mapstructure:"tools_upload_flavor"` ToolsUploadFlavor string
ToolsUploadPath string `mapstructure:"tools_upload_path"`
} }
func (c *StepPrepareTools) Run(state multistep.StateBag) multistep.StepAction { func (c *StepPrepareTools) Run(state multistep.StateBag) multistep.StepAction {
......
package common
import (
"io/ioutil"
"os"
"testing"
"github.com/mitchellh/multistep"
)
func TestStepPrepareTools_impl(t *testing.T) {
var _ multistep.Step = new(StepPrepareTools)
}
func TestStepPrepareTools(t *testing.T) {
tf, err := ioutil.TempFile("", "packer")
if err != nil {
t.Fatalf("err: %s", err)
}
tf.Close()
defer os.Remove(tf.Name())
state := testState(t)
step := &StepPrepareTools{
RemoteType: "",
ToolsUploadFlavor: "foo",
}
driver := state.Get("driver").(*DriverMock)
// Mock results
driver.ToolsIsoPathResult = tf.Name()
// Test the run
if action := step.Run(state); action != multistep.ActionContinue {
t.Fatalf("bad action: %#v", action)
}
if _, ok := state.GetOk("error"); ok {
t.Fatal("should NOT have error")
}
// Test the driver
if !driver.ToolsIsoPathCalled {
t.Fatal("tools iso path should be called")
}
if driver.ToolsIsoPathFlavor != "foo" {
t.Fatalf("bad: %#v", driver.ToolsIsoPathFlavor)
}
// Test the resulting state
path, ok := state.GetOk("tools_upload_source")
if !ok {
t.Fatal("should have tools_upload_source")
}
if path != tf.Name() {
t.Fatalf("bad: %#v", path)
}
}
...@@ -312,7 +312,6 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe ...@@ -312,7 +312,6 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe
&vmwcommon.StepPrepareTools{ &vmwcommon.StepPrepareTools{
RemoteType: b.config.RemoteType, RemoteType: b.config.RemoteType,
ToolsUploadFlavor: b.config.ToolsUploadFlavor, ToolsUploadFlavor: b.config.ToolsUploadFlavor,
ToolsUploadPath: b.config.ToolsUploadPath,
}, },
&common.StepDownload{ &common.StepDownload{
Checksum: b.config.ISOChecksum, Checksum: b.config.ISOChecksum,
......
...@@ -55,7 +55,6 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe ...@@ -55,7 +55,6 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe
&vmwcommon.StepPrepareTools{ &vmwcommon.StepPrepareTools{
RemoteType: b.config.RemoteType, RemoteType: b.config.RemoteType,
ToolsUploadFlavor: b.config.ToolsUploadFlavor, ToolsUploadFlavor: b.config.ToolsUploadFlavor,
ToolsUploadPath: b.config.ToolsUploadPath,
}, },
&vmwcommon.StepOutputDir{ &vmwcommon.StepOutputDir{
Force: b.config.PackerForce, Force: b.config.PackerForce,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment