terraform-provider-google/google/resource_storage_default_object_access_control_test.go
The Magician 30fc9ec3f9 Generate DefaultObjectAccessControl in Terraform (#2358)
<!-- This change is generated by MagicModules. -->
/cc @rileykarson
2018-12-20 17:22:22 -08:00

111 lines
2.7 KiB
Go

package google
import (
"fmt"
"testing"
"github.com/hashicorp/terraform/helper/resource"
"github.com/hashicorp/terraform/terraform"
)
func TestAccStorageDefaultObjectAccessControl_basic(t *testing.T) {
t.Parallel()
bucketName := testBucketName()
resource.Test(t, resource.TestCase{
PreCheck: func() {
if errObjectAcl != nil {
panic(errObjectAcl)
}
testAccPreCheck(t)
},
Providers: testAccProviders,
CheckDestroy: testAccStorageDefaultObjectAccessControlDestroy,
Steps: []resource.TestStep{
{
Config: testGoogleStorageDefaultObjectAccessControlBasic(bucketName, "READER", "allUsers"),
},
{
ResourceName: "google_storage_default_object_access_control.default",
ImportState: true,
ImportStateVerify: true,
},
},
})
}
func TestAccStorageDefaultObjectAccessControl_update(t *testing.T) {
t.Parallel()
bucketName := testBucketName()
resource.Test(t, resource.TestCase{
PreCheck: func() {
if errObjectAcl != nil {
panic(errObjectAcl)
}
testAccPreCheck(t)
},
Providers: testAccProviders,
CheckDestroy: testAccStorageDefaultObjectAccessControlDestroy,
Steps: []resource.TestStep{
{
Config: testGoogleStorageDefaultObjectAccessControlBasic(bucketName, "READER", "allUsers"),
},
{
ResourceName: "google_storage_default_object_access_control.default",
ImportState: true,
ImportStateVerify: true,
},
{
Config: testGoogleStorageDefaultObjectAccessControlBasic(bucketName, "OWNER", "allUsers"),
},
{
ResourceName: "google_storage_default_object_access_control.default",
ImportState: true,
ImportStateVerify: true,
},
},
})
}
func testAccStorageDefaultObjectAccessControlDestroy(s *terraform.State) error {
config := testAccProvider.Meta().(*Config)
for _, rs := range s.RootModule().Resources {
if rs.Type != "google_storage_bucket_acl" {
continue
}
bucket := rs.Primary.Attributes["bucket"]
entity := rs.Primary.Attributes["entity"]
rePairs, err := config.clientStorage.DefaultObjectAccessControls.List(bucket).Do()
if err != nil {
return fmt.Errorf("Can't list role entity acl for bucket %s", bucket)
}
for _, v := range rePairs.Items {
if v.Entity == entity {
return fmt.Errorf("found entity %s as role entity acl entry in bucket %s", entity, bucket)
}
}
}
return nil
}
func testGoogleStorageDefaultObjectAccessControlBasic(bucketName, role, entity string) string {
return fmt.Sprintf(`
resource "google_storage_bucket" "bucket" {
name = "%s"
}
resource "google_storage_default_object_access_control" "default" {
bucket = "${google_storage_bucket.bucket.name}"
role = "%s"
entity = "%s"
}
`, bucketName, role, entity)
}