github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/builtin/providers/newrelic/provider_test.go (about)

     1  package newrelic
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  	"testing"
     7  	"time"
     8  
     9  	"github.com/hashicorp/terraform/helper/acctest"
    10  	"github.com/hashicorp/terraform/helper/schema"
    11  	"github.com/hashicorp/terraform/terraform"
    12  	newrelic "github.com/newrelic/go-agent"
    13  )
    14  
    15  var (
    16  	testAccExpectedApplicationName string
    17  	testAccProviders               map[string]terraform.ResourceProvider
    18  	testAccProvider                *schema.Provider
    19  )
    20  
    21  func init() {
    22  	testAccExpectedApplicationName = fmt.Sprintf("tf_test_%s", acctest.RandString(10))
    23  	testAccProvider = Provider().(*schema.Provider)
    24  	testAccProviders = map[string]terraform.ResourceProvider{
    25  		"newrelic": testAccProvider,
    26  	}
    27  }
    28  
    29  func TestProvider(t *testing.T) {
    30  	if err := Provider().(*schema.Provider).InternalValidate(); err != nil {
    31  		t.Fatalf("err: %s", err)
    32  	}
    33  }
    34  
    35  func TestProviderImpl(t *testing.T) {
    36  	var _ terraform.ResourceProvider = Provider()
    37  }
    38  
    39  func testAccPreCheck(t *testing.T) {
    40  	if v := os.Getenv("NEWRELIC_API_KEY"); v == "" {
    41  		t.Log(v)
    42  		t.Fatal("NEWRELIC_API_KEY must be set for acceptance tests")
    43  	}
    44  
    45  	// setup fake application by logging some metrics
    46  	if v := os.Getenv("NEWRELIC_LICENSE_KEY"); len(v) > 0 {
    47  		config := newrelic.NewConfig(testAccExpectedApplicationName, v)
    48  		app, err := newrelic.NewApplication(config)
    49  		if err != nil {
    50  			t.Log(err)
    51  			t.Fatal("Error setting up New Relic application")
    52  		}
    53  
    54  		if err := app.WaitForConnection(30 * time.Second); err != nil {
    55  			t.Log(err)
    56  			t.Fatal("Unable to setup New Relic application connection")
    57  		}
    58  
    59  		if err := app.RecordCustomEvent("terraform test", nil); err != nil {
    60  			t.Log(err)
    61  			t.Fatal("Unable to record custom event in New Relic")
    62  		}
    63  
    64  		app.Shutdown(30 * time.Second)
    65  	} else {
    66  		t.Log(v)
    67  		t.Fatal("NEWRELIC_LICENSE_KEY must be set for acceptance tests")
    68  	}
    69  }