github.com/bengesoff/terraform@v0.3.1-0.20141018223233-b25a53629922/builtin/providers/aws/resource_provider_test.go (about)

     1  package aws
     2  
     3  import (
     4  	"log"
     5  	"os"
     6  	"reflect"
     7  	"testing"
     8  
     9  	"github.com/hashicorp/terraform/config"
    10  	"github.com/hashicorp/terraform/terraform"
    11  )
    12  
    13  var testAccProviders map[string]terraform.ResourceProvider
    14  var testAccProvider *ResourceProvider
    15  
    16  func init() {
    17  	testAccProvider = new(ResourceProvider)
    18  	testAccProviders = map[string]terraform.ResourceProvider{
    19  		"aws": testAccProvider,
    20  	}
    21  }
    22  
    23  func TestResourceProvider_impl(t *testing.T) {
    24  	var _ terraform.ResourceProvider = new(ResourceProvider)
    25  }
    26  
    27  func TestResourceProvider_Configure(t *testing.T) {
    28  	rp := new(ResourceProvider)
    29  
    30  	raw := map[string]interface{}{
    31  		"access_key": "foo",
    32  		"secret_key": "bar",
    33  		"region":     "us-east-1",
    34  	}
    35  
    36  	rawConfig, err := config.NewRawConfig(raw)
    37  	if err != nil {
    38  		t.Fatalf("err: %s", err)
    39  	}
    40  
    41  	err = rp.Configure(terraform.NewResourceConfig(rawConfig))
    42  	if err != nil {
    43  		t.Fatalf("err: %s", err)
    44  	}
    45  
    46  	expected := Config{
    47  		AccessKey: "foo",
    48  		SecretKey: "bar",
    49  		Region:    "us-east-1",
    50  	}
    51  
    52  	if !reflect.DeepEqual(rp.Config, expected) {
    53  		t.Fatalf("bad: %#v", rp.Config)
    54  	}
    55  
    56  	if rp.p == nil {
    57  		t.Fatal("provider should be set")
    58  	}
    59  	if !reflect.DeepEqual(rp, rp.p.Meta()) {
    60  		t.Fatalf("meta should be set")
    61  	}
    62  }
    63  
    64  func TestResourceProvider_ConfigureBadRegion(t *testing.T) {
    65  	rp := new(ResourceProvider)
    66  
    67  	raw := map[string]interface{}{
    68  		"access_key": "foo",
    69  		"secret_key": "bar",
    70  		"region":     "blah",
    71  	}
    72  
    73  	rawConfig, err := config.NewRawConfig(raw)
    74  	if err != nil {
    75  		t.Fatalf("err: %s", err)
    76  	}
    77  
    78  	err = rp.Configure(terraform.NewResourceConfig(rawConfig))
    79  	if err == nil {
    80  		t.Fatalf("should have err: bad region")
    81  	}
    82  }
    83  
    84  func testAccPreCheck(t *testing.T) {
    85  	if v := os.Getenv("AWS_ACCESS_KEY"); v == "" {
    86  		t.Fatal("AWS_ACCESS_KEY must be set for acceptance tests")
    87  	}
    88  	if v := os.Getenv("AWS_SECRET_KEY"); v == "" {
    89  		t.Fatal("AWS_SECRET_KEY must be set for acceptance tests")
    90  	}
    91  	if v := os.Getenv("AWS_REGION"); v == "" {
    92  		log.Println("[INFO] Test: Using us-west-2 as test region")
    93  		os.Setenv("AWS_REGION", "us-west-2")
    94  	}
    95  }