github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/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 }