github.com/phobos182/packer@v0.2.3-0.20130819023704-c84d2aeffc68/builder/amazon/ebs/builder_test.go (about) 1 package ebs 2 3 import ( 4 "github.com/mitchellh/packer/packer" 5 "testing" 6 ) 7 8 func testConfig() map[string]interface{} { 9 return map[string]interface{}{ 10 "access_key": "foo", 11 "secret_key": "bar", 12 "source_ami": "foo", 13 "instance_type": "foo", 14 "region": "us-east-1", 15 "ssh_username": "root", 16 "ami_name": "foo", 17 } 18 } 19 20 func TestBuilder_ImplementsBuilder(t *testing.T) { 21 var raw interface{} 22 raw = &Builder{} 23 if _, ok := raw.(packer.Builder); !ok { 24 t.Fatalf("Builder should be a builder") 25 } 26 } 27 28 func TestBuilder_Prepare_BadType(t *testing.T) { 29 b := &Builder{} 30 c := map[string]interface{}{ 31 "access_key": []string{}, 32 } 33 34 err := b.Prepare(c) 35 if err == nil { 36 t.Fatalf("prepare should fail") 37 } 38 } 39 40 func TestBuilderPrepare_AMIName(t *testing.T) { 41 var b Builder 42 config := testConfig() 43 44 // Test good 45 config["ami_name"] = "foo" 46 err := b.Prepare(config) 47 if err != nil { 48 t.Fatalf("should not have error: %s", err) 49 } 50 51 // Test bad 52 config["ami_name"] = "foo {{" 53 b = Builder{} 54 err = b.Prepare(config) 55 if err == nil { 56 t.Fatal("should have error") 57 } 58 59 // Test bad 60 delete(config, "ami_name") 61 b = Builder{} 62 err = b.Prepare(config) 63 if err == nil { 64 t.Fatal("should have error") 65 } 66 } 67 68 func TestBuilderPrepare_InvalidKey(t *testing.T) { 69 var b Builder 70 config := testConfig() 71 72 // Add a random key 73 config["i_should_not_be_valid"] = true 74 err := b.Prepare(config) 75 if err == nil { 76 t.Fatal("should have error") 77 } 78 }