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  }