github.com/vtorhonen/terraform@v0.9.0-beta2.0.20170307220345-5d894e4ffda7/backend/remote-state/consul/client_test.go (about)

     1  package consul
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  	"testing"
     7  	"time"
     8  
     9  	"github.com/hashicorp/terraform/backend"
    10  	"github.com/hashicorp/terraform/state/remote"
    11  )
    12  
    13  func TestRemoteClient_impl(t *testing.T) {
    14  	var _ remote.Client = new(RemoteClient)
    15  	var _ remote.ClientLocker = new(RemoteClient)
    16  }
    17  
    18  func TestRemoteClient(t *testing.T) {
    19  	addr := os.Getenv("CONSUL_HTTP_ADDR")
    20  	if addr == "" {
    21  		t.Log("consul tests require CONSUL_HTTP_ADDR")
    22  		t.Skip()
    23  	}
    24  
    25  	// Get the backend
    26  	b := backend.TestBackendConfig(t, New(), map[string]interface{}{
    27  		"address": addr,
    28  		"path":    fmt.Sprintf("tf-unit/%s", time.Now().String()),
    29  	})
    30  
    31  	// Grab the client
    32  	state, err := b.State(backend.DefaultStateName)
    33  	if err != nil {
    34  		t.Fatalf("err: %s", err)
    35  	}
    36  
    37  	// Test
    38  	remote.TestClient(t, state.(*remote.State).Client)
    39  }
    40  
    41  func TestConsul_stateLock(t *testing.T) {
    42  	addr := os.Getenv("CONSUL_HTTP_ADDR")
    43  	if addr == "" {
    44  		t.Log("consul lock tests require CONSUL_HTTP_ADDR")
    45  		t.Skip()
    46  	}
    47  
    48  	path := fmt.Sprintf("tf-unit/%s", time.Now().String())
    49  
    50  	// create 2 instances to get 2 remote.Clients
    51  	sA, err := backend.TestBackendConfig(t, New(), map[string]interface{}{
    52  		"address": addr,
    53  		"path":    path,
    54  	}).State(backend.DefaultStateName)
    55  	if err != nil {
    56  		t.Fatal(err)
    57  	}
    58  
    59  	sB, err := backend.TestBackendConfig(t, New(), map[string]interface{}{
    60  		"address": addr,
    61  		"path":    path,
    62  	}).State(backend.DefaultStateName)
    63  	if err != nil {
    64  		t.Fatal(err)
    65  	}
    66  
    67  	remote.TestRemoteLocks(t, sA.(*remote.State).Client, sB.(*remote.State).Client)
    68  }