github.com/mmcquillan/packer@v1.1.1-0.20171009221028-c85cf0483a5d/builder/alicloud/ecs/run_config_test.go (about) 1 package ecs 2 3 import ( 4 "io/ioutil" 5 "testing" 6 7 "github.com/hashicorp/packer/helper/communicator" 8 ) 9 10 func testConfig() *RunConfig { 11 return &RunConfig{ 12 AlicloudSourceImage: "alicloud_images", 13 InstanceType: "ecs.n1.tiny", 14 Comm: communicator.Config{ 15 SSHUsername: "alicloud", 16 }, 17 } 18 } 19 20 func TestRunConfigPrepare(t *testing.T) { 21 c := testConfig() 22 err := c.Prepare(nil) 23 if len(err) > 0 { 24 t.Fatalf("err: %s", err) 25 } 26 } 27 28 func TestRunConfigPrepare_InstanceType(t *testing.T) { 29 c := testConfig() 30 c.InstanceType = "" 31 if err := c.Prepare(nil); len(err) != 1 { 32 t.Fatalf("err: %s", err) 33 } 34 } 35 36 func TestRunConfigPrepare_SourceECSImage(t *testing.T) { 37 c := testConfig() 38 c.AlicloudSourceImage = "" 39 if err := c.Prepare(nil); len(err) != 1 { 40 t.Fatalf("err: %s", err) 41 } 42 } 43 44 func TestRunConfigPrepare_SSHPort(t *testing.T) { 45 c := testConfig() 46 c.Comm.SSHPort = 0 47 if err := c.Prepare(nil); len(err) != 0 { 48 t.Fatalf("err: %s", err) 49 } 50 51 if c.Comm.SSHPort != 22 { 52 t.Fatalf("invalid value: %d", c.Comm.SSHPort) 53 } 54 55 c.Comm.SSHPort = 44 56 if err := c.Prepare(nil); len(err) != 0 { 57 t.Fatalf("err: %s", err) 58 } 59 60 if c.Comm.SSHPort != 44 { 61 t.Fatalf("invalid value: %d", c.Comm.SSHPort) 62 } 63 } 64 65 func TestRunConfigPrepare_UserData(t *testing.T) { 66 c := testConfig() 67 tf, err := ioutil.TempFile("", "packer") 68 if err != nil { 69 t.Fatalf("err: %s", err) 70 } 71 defer tf.Close() 72 73 c.UserData = "foo" 74 c.UserDataFile = tf.Name() 75 if err := c.Prepare(nil); len(err) != 1 { 76 t.Fatalf("err: %s", err) 77 } 78 } 79 80 func TestRunConfigPrepare_UserDataFile(t *testing.T) { 81 c := testConfig() 82 if err := c.Prepare(nil); len(err) != 0 { 83 t.Fatalf("err: %s", err) 84 } 85 86 c.UserDataFile = "idontexistidontthink" 87 if err := c.Prepare(nil); len(err) != 1 { 88 t.Fatalf("err: %s", err) 89 } 90 91 tf, err := ioutil.TempFile("", "packer") 92 if err != nil { 93 t.Fatalf("err: %s", err) 94 } 95 defer tf.Close() 96 97 c.UserDataFile = tf.Name() 98 if err := c.Prepare(nil); len(err) != 0 { 99 t.Fatalf("err: %s", err) 100 } 101 } 102 103 func TestRunConfigPrepare_TemporaryKeyPairName(t *testing.T) { 104 c := testConfig() 105 c.TemporaryKeyPairName = "" 106 if err := c.Prepare(nil); len(err) != 0 { 107 t.Fatalf("err: %s", err) 108 } 109 110 if c.TemporaryKeyPairName == "" { 111 t.Fatal("keypair name is empty") 112 } 113 114 c.TemporaryKeyPairName = "ssh-key-123" 115 if err := c.Prepare(nil); len(err) != 0 { 116 t.Fatalf("err: %s", err) 117 } 118 119 if c.TemporaryKeyPairName != "ssh-key-123" { 120 t.Fatal("keypair name does not match") 121 } 122 }