github.com/rothwerx/packer@v0.9.0/builder/amazon/common/ami_config_test.go (about) 1 package common 2 3 import ( 4 "reflect" 5 "testing" 6 ) 7 8 func testAMIConfig() *AMIConfig { 9 return &AMIConfig{ 10 AMIName: "foo", 11 } 12 } 13 14 func TestAMIConfigPrepare_name(t *testing.T) { 15 c := testAMIConfig() 16 if err := c.Prepare(nil); err != nil { 17 t.Fatalf("shouldn't have err: %s", err) 18 } 19 20 c.AMIName = "" 21 if err := c.Prepare(nil); err == nil { 22 t.Fatal("should have error") 23 } 24 } 25 26 func TestAMIConfigPrepare_regions(t *testing.T) { 27 c := testAMIConfig() 28 c.AMIRegions = nil 29 if err := c.Prepare(nil); err != nil { 30 t.Fatalf("shouldn't have err: %s", err) 31 } 32 33 c.AMIRegions = listEC2Regions() 34 if err := c.Prepare(nil); err != nil { 35 t.Fatalf("shouldn't have err: %s", err) 36 } 37 38 c.AMIRegions = []string{"foo"} 39 if err := c.Prepare(nil); err == nil { 40 t.Fatal("should have error") 41 } 42 43 c.AMIRegions = []string{"us-east-1", "us-west-1", "us-east-1"} 44 if err := c.Prepare(nil); err != nil { 45 t.Fatalf("bad: %s", err) 46 } 47 48 expected := []string{"us-east-1", "us-west-1"} 49 if !reflect.DeepEqual(c.AMIRegions, expected) { 50 t.Fatalf("bad: %#v", c.AMIRegions) 51 } 52 }