github.com/dougneal/terraform@v0.6.15-0.20170330092735-b6a3840768a4/backend/remote-state/consul/client_test.go (about) 1 package consul 2 3 import ( 4 "fmt" 5 "testing" 6 "time" 7 8 "github.com/hashicorp/terraform/backend" 9 "github.com/hashicorp/terraform/state/remote" 10 ) 11 12 func TestRemoteClient_impl(t *testing.T) { 13 var _ remote.Client = new(RemoteClient) 14 var _ remote.ClientLocker = new(RemoteClient) 15 } 16 17 func TestRemoteClient(t *testing.T) { 18 srv := newConsulTestServer(t) 19 defer srv.Stop() 20 21 // Get the backend 22 b := backend.TestBackendConfig(t, New(), map[string]interface{}{ 23 "address": srv.HTTPAddr, 24 "path": fmt.Sprintf("tf-unit/%s", time.Now().String()), 25 }) 26 27 // Grab the client 28 state, err := b.State(backend.DefaultStateName) 29 if err != nil { 30 t.Fatalf("err: %s", err) 31 } 32 33 // Test 34 remote.TestClient(t, state.(*remote.State).Client) 35 } 36 37 // test the gzip functionality of the client 38 func TestRemoteClient_gzipUpgrade(t *testing.T) { 39 srv := newConsulTestServer(t) 40 defer srv.Stop() 41 42 statePath := fmt.Sprintf("tf-unit/%s", time.Now().String()) 43 44 // Get the backend 45 b := backend.TestBackendConfig(t, New(), map[string]interface{}{ 46 "address": srv.HTTPAddr, 47 "path": statePath, 48 }) 49 50 // Grab the client 51 state, err := b.State(backend.DefaultStateName) 52 if err != nil { 53 t.Fatalf("err: %s", err) 54 } 55 56 // Test 57 remote.TestClient(t, state.(*remote.State).Client) 58 59 // create a new backend with gzip 60 b = backend.TestBackendConfig(t, New(), map[string]interface{}{ 61 "address": srv.HTTPAddr, 62 "path": statePath, 63 "gzip": true, 64 }) 65 66 // Grab the client 67 state, err = b.State(backend.DefaultStateName) 68 if err != nil { 69 t.Fatalf("err: %s", err) 70 } 71 72 // Test 73 remote.TestClient(t, state.(*remote.State).Client) 74 } 75 76 func TestConsul_stateLock(t *testing.T) { 77 srv := newConsulTestServer(t) 78 defer srv.Stop() 79 80 path := fmt.Sprintf("tf-unit/%s", time.Now().String()) 81 82 // create 2 instances to get 2 remote.Clients 83 sA, err := backend.TestBackendConfig(t, New(), map[string]interface{}{ 84 "address": srv.HTTPAddr, 85 "path": path, 86 }).State(backend.DefaultStateName) 87 if err != nil { 88 t.Fatal(err) 89 } 90 91 sB, err := backend.TestBackendConfig(t, New(), map[string]interface{}{ 92 "address": srv.HTTPAddr, 93 "path": path, 94 }).State(backend.DefaultStateName) 95 if err != nil { 96 t.Fatal(err) 97 } 98 99 remote.TestRemoteLocks(t, sA.(*remote.State).Client, sB.(*remote.State).Client) 100 }