github.com/bengesoff/terraform@v0.3.1-0.20141018223233-b25a53629922/builtin/providers/aws/resource_aws_s3_bucket_test.go (about) 1 package aws 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/hashicorp/terraform/helper/resource" 8 "github.com/hashicorp/terraform/terraform" 9 ) 10 11 func TestAccAWSS3Bucket(t *testing.T) { 12 resource.Test(t, resource.TestCase{ 13 PreCheck: func() { testAccPreCheck(t) }, 14 Providers: testAccProviders, 15 CheckDestroy: testAccCheckAWSS3BucketDestroy, 16 Steps: []resource.TestStep{ 17 resource.TestStep{ 18 Config: testAccAWSS3BucketConfig, 19 Check: resource.ComposeTestCheckFunc( 20 testAccCheckAWSS3BucketExists("aws_s3_bucket.bar"), 21 ), 22 }, 23 }, 24 }) 25 } 26 27 func testAccCheckAWSS3BucketDestroy(s *terraform.State) error { 28 conn := testAccProvider.s3conn 29 30 for _, rs := range s.RootModule().Resources { 31 if rs.Type != "aws_s3_bucket" { 32 continue 33 } 34 35 bucket := conn.Bucket(rs.Primary.ID) 36 resp, err := bucket.Head("/") 37 if err == nil { 38 return fmt.Errorf("S3Bucket still exists") 39 } 40 defer resp.Body.Close() 41 } 42 return nil 43 } 44 45 func testAccCheckAWSS3BucketExists(n string) resource.TestCheckFunc { 46 return func(s *terraform.State) error { 47 rs, ok := s.RootModule().Resources[n] 48 if !ok { 49 return fmt.Errorf("Not found: %s", n) 50 } 51 52 if rs.Primary.ID == "" { 53 return fmt.Errorf("No S3 Bucket ID is set") 54 } 55 56 conn := testAccProvider.s3conn 57 bucket := conn.Bucket(rs.Primary.ID) 58 resp, err := bucket.Head("/") 59 if err != nil { 60 return fmt.Errorf("S3Bucket error: %v", err) 61 } 62 defer resp.Body.Close() 63 return nil 64 } 65 } 66 67 const testAccAWSS3BucketConfig = ` 68 resource "aws_s3_bucket" "bar" { 69 bucket = "tf-test-bucket" 70 acl = "public-read" 71 } 72 `