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  }