github.com/mponton/terratest@v0.44.0/modules/gcp/storage_test.go (about) 1 //go:build gcp 2 // +build gcp 3 4 // NOTE: We use build tags to differentiate GCP testing for better isolation and parallelism when executing our tests. 5 6 package gcp 7 8 import ( 9 "bytes" 10 "fmt" 11 "strings" 12 "testing" 13 14 "github.com/mponton/terratest/modules/logger" 15 "github.com/mponton/terratest/modules/random" 16 "github.com/stretchr/testify/require" 17 ) 18 19 func TestCreateAndDestroyStorageBucket(t *testing.T) { 20 t.Parallel() 21 22 projectID := GetGoogleProjectIDFromEnvVar(t) 23 id := random.UniqueId() 24 gsBucketName := "gruntwork-terratest-" + strings.ToLower(id) 25 testFilePath := fmt.Sprintf("test-file-%s.txt", random.UniqueId()) 26 testFileBody := "test file text" 27 28 logger.Logf(t, "Random values selected Bucket Name = %s, Test Filepath: %s\n", gsBucketName, testFilePath) 29 30 CreateStorageBucket(t, projectID, gsBucketName, nil) 31 defer DeleteStorageBucket(t, gsBucketName) 32 33 // Write a test file to the storage bucket 34 objectURL := WriteBucketObject(t, gsBucketName, testFilePath, strings.NewReader(testFileBody), "text/plain") 35 logger.Logf(t, "Got URL: %s", objectURL) 36 37 // Then verify its contents matches the expected result 38 fileReader := ReadBucketObject(t, gsBucketName, testFilePath) 39 40 buf := new(bytes.Buffer) 41 buf.ReadFrom(fileReader) 42 result := buf.String() 43 44 require.Equal(t, testFileBody, result) 45 46 // Empty the storage bucket so we can delete it 47 defer EmptyStorageBucket(t, gsBucketName) 48 } 49 50 func TestAssertStorageBucketExistsNoFalseNegative(t *testing.T) { 51 t.Parallel() 52 53 projectID := GetGoogleProjectIDFromEnvVar(t) 54 id := random.UniqueId() 55 gsBucketName := "gruntwork-terratest-" + strings.ToLower(id) 56 logger.Logf(t, "Random values selected Id = %s\n", id) 57 58 CreateStorageBucket(t, projectID, gsBucketName, nil) 59 defer DeleteStorageBucket(t, gsBucketName) 60 61 AssertStorageBucketExists(t, gsBucketName) 62 } 63 64 func TestAssertStorageBucketExistsNoFalsePositive(t *testing.T) { 65 t.Parallel() 66 67 id := random.UniqueId() 68 gsBucketName := "gruntwork-terratest-" + strings.ToLower(id) 69 logger.Logf(t, "Random values selected Id = %s\n", id) 70 71 // Don't create a new storage bucket so we can confirm that our function works as expected. 72 73 err := AssertStorageBucketExistsE(t, gsBucketName) 74 if err == nil { 75 t.Fatalf("Function claimed that the Storage Bucket '%s' exists, but in fact it does not.", gsBucketName) 76 } 77 }