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 }