package common import ( "testing" "github.com/hashicorp/packer/helper/communicator" ) func testConfig() *RunConfig { return &RunConfig{ SourceImageId: "ucloud_image", InstanceType: "n-basic-2", Zone: "cn-bj2-02", Comm: communicator.Config{ SSH: communicator.SSH{ SSHUsername: "ucloud", }, }, } } func TestRunConfigPrepare(t *testing.T) { c := testConfig() err := c.Prepare(nil) if len(err) > 0 { t.Fatalf("err: %s", err) } } func TestRunConfigPrepare_InstanceType(t *testing.T) { c := testConfig() c.InstanceType = "" if err := c.Prepare(nil); len(err) != 1 { t.Fatalf("err: %s", err) } } func TestRunConfigPrepare_SourceImage(t *testing.T) { c := testConfig() c.SourceImageId = "" if err := c.Prepare(nil); len(err) != 1 { t.Fatalf("err: %s", err) } } func TestRunConfigPrepare_SSHPort(t *testing.T) { c := testConfig() c.Comm.SSHPort = 0 if err := c.Prepare(nil); len(err) != 0 { t.Fatalf("err: %s", err) } if c.Comm.SSHPort != 22 { t.Fatalf("invalid value: %d", c.Comm.SSHPort) } c.Comm.SSHPort = 44 if err := c.Prepare(nil); len(err) != 0 { t.Fatalf("err: %s", err) } if c.Comm.SSHPort != 44 { t.Fatalf("invalid value: %d", c.Comm.SSHPort) } }