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