builder/vmware/common: tests for StepPrepareTools

/cc @rasa - an example
This commit is contained in:
Mitchell Hashimoto 2014-05-10 10:16:53 -07:00
parent 1b1d87128c
commit 7e991af48e
4 changed files with 62 additions and 6 deletions

View File

@ -2,14 +2,14 @@ package common
import (
"fmt"
"github.com/mitchellh/multistep"
"os"
"github.com/mitchellh/multistep"
)
type StepPrepareTools struct {
RemoteType string `mapstructure:"remote_type"`
ToolsUploadFlavor string `mapstructure:"tools_upload_flavor"`
ToolsUploadPath string `mapstructure:"tools_upload_path"`
RemoteType string
ToolsUploadFlavor string
}
func (c *StepPrepareTools) Run(state multistep.StateBag) multistep.StepAction {

View File

@ -0,0 +1,58 @@
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)
}
}

View File

@ -312,7 +312,6 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe
&vmwcommon.StepPrepareTools{
RemoteType: b.config.RemoteType,
ToolsUploadFlavor: b.config.ToolsUploadFlavor,
ToolsUploadPath: b.config.ToolsUploadPath,
},
&common.StepDownload{
Checksum: b.config.ISOChecksum,

View File

@ -55,7 +55,6 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe
&vmwcommon.StepPrepareTools{
RemoteType: b.config.RemoteType,
ToolsUploadFlavor: b.config.ToolsUploadFlavor,
ToolsUploadPath: b.config.ToolsUploadPath,
},
&vmwcommon.StepOutputDir{
Force: b.config.PackerForce,