github.com/Hashicorp/packer@v1.3.2/builder/alicloud/ecs/builder_test.go (about) 1 package ecs 2 3 import ( 4 "testing" 5 6 "github.com/hashicorp/packer/packer" 7 ) 8 9 func testBuilderConfig() map[string]interface{} { 10 return map[string]interface{}{ 11 "access_key": "foo", 12 "secret_key": "bar", 13 "source_image": "foo", 14 "instance_type": "ecs.n1.tiny", 15 "region": "cn-beijing", 16 "ssh_username": "root", 17 "image_name": "foo", 18 "io_optimized": true, 19 } 20 } 21 22 func TestBuilder_ImplementsBuilder(t *testing.T) { 23 var raw interface{} 24 raw = &Builder{} 25 if _, ok := raw.(packer.Builder); !ok { 26 t.Fatalf("Builder should be a builder") 27 } 28 } 29 30 func TestBuilder_Prepare_BadType(t *testing.T) { 31 b := &Builder{} 32 c := map[string]interface{}{ 33 "access_key": []string{}, 34 } 35 36 warnings, err := b.Prepare(c) 37 if len(warnings) > 0 { 38 t.Fatalf("bad: %#v", warnings) 39 } 40 if err == nil { 41 t.Fatalf("prepare should fail") 42 } 43 } 44 45 func TestBuilderPrepare_ECSImageName(t *testing.T) { 46 var b Builder 47 config := testBuilderConfig() 48 49 // Test good 50 config["image_name"] = "ecs.n1.tiny" 51 warnings, err := b.Prepare(config) 52 if len(warnings) > 0 { 53 t.Fatalf("bad: %#v", warnings) 54 } 55 if err != nil { 56 t.Fatalf("should not have error: %s", err) 57 } 58 59 // Test bad 60 config["ecs_image_name"] = "foo {{" 61 b = Builder{} 62 warnings, err = b.Prepare(config) 63 if len(warnings) > 0 { 64 t.Fatalf("bad: %#v", warnings) 65 } 66 if err == nil { 67 t.Fatal("should have error") 68 } 69 70 // Test bad 71 delete(config, "image_name") 72 b = Builder{} 73 warnings, err = b.Prepare(config) 74 if len(warnings) > 0 { 75 t.Fatalf("bad: %#v", warnings) 76 } 77 if err == nil { 78 t.Fatal("should have error") 79 } 80 } 81 82 func TestBuilderPrepare_InvalidKey(t *testing.T) { 83 var b Builder 84 config := testBuilderConfig() 85 86 // Add a random key 87 config["i_should_not_be_valid"] = true 88 warnings, err := b.Prepare(config) 89 if len(warnings) > 0 { 90 t.Fatalf("bad: %#v", warnings) 91 } 92 if err == nil { 93 t.Fatal("should have error") 94 } 95 }