github.com/nathanielks/terraform@v0.6.1-0.20170509030759-13e1a62319dc/backend/remote-state/s3/client_test.go (about)

     1  package s3
     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  	testACC(t)
    19  
    20  	bucketName := fmt.Sprintf("terraform-remote-s3-test-%x", time.Now().Unix())
    21  	keyName := "testState"
    22  
    23  	b := backend.TestBackendConfig(t, New(), map[string]interface{}{
    24  		"bucket":  bucketName,
    25  		"key":     keyName,
    26  		"encrypt": true,
    27  	}).(*Backend)
    28  
    29  	state, err := b.State(backend.DefaultStateName)
    30  	if err != nil {
    31  		t.Fatal(err)
    32  	}
    33  
    34  	createS3Bucket(t, b.s3Client, bucketName)
    35  	defer deleteS3Bucket(t, b.s3Client, bucketName)
    36  
    37  	remote.TestClient(t, state.(*remote.State).Client)
    38  }
    39  
    40  func TestRemoteClientLocks(t *testing.T) {
    41  	testACC(t)
    42  
    43  	bucketName := fmt.Sprintf("terraform-remote-s3-test-%x", time.Now().Unix())
    44  	keyName := "testState"
    45  
    46  	b1 := backend.TestBackendConfig(t, New(), map[string]interface{}{
    47  		"bucket":     bucketName,
    48  		"key":        keyName,
    49  		"encrypt":    true,
    50  		"lock_table": bucketName,
    51  	}).(*Backend)
    52  
    53  	b2 := backend.TestBackendConfig(t, New(), map[string]interface{}{
    54  		"bucket":     bucketName,
    55  		"key":        keyName,
    56  		"encrypt":    true,
    57  		"lock_table": bucketName,
    58  	}).(*Backend)
    59  
    60  	s1, err := b1.State(backend.DefaultStateName)
    61  	if err != nil {
    62  		t.Fatal(err)
    63  	}
    64  
    65  	s2, err := b2.State(backend.DefaultStateName)
    66  	if err != nil {
    67  		t.Fatal(err)
    68  	}
    69  
    70  	createS3Bucket(t, b1.s3Client, bucketName)
    71  	defer deleteS3Bucket(t, b1.s3Client, bucketName)
    72  	createDynamoDBTable(t, b1.dynClient, bucketName)
    73  	defer deleteDynamoDBTable(t, b1.dynClient, bucketName)
    74  
    75  	remote.TestRemoteLocks(t, s1.(*remote.State).Client, s2.(*remote.State).Client)
    76  }