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  }