github.com/subuk/terraform@v0.6.14-0.20160317140351-de1567c2e732/builtin/providers/aws/resource_aws_kms_alias_test.go (about) 1 package aws 2 3 import ( 4 "fmt" 5 "testing" 6 "time" 7 8 "github.com/hashicorp/terraform/helper/resource" 9 "github.com/hashicorp/terraform/terraform" 10 ) 11 12 func TestAccAWSKmsAlias_basic(t *testing.T) { 13 resource.Test(t, resource.TestCase{ 14 PreCheck: func() { testAccPreCheck(t) }, 15 Providers: testAccProviders, 16 CheckDestroy: testAccCheckAWSKmsAliasDestroy, 17 Steps: []resource.TestStep{ 18 resource.TestStep{ 19 Config: testAccAWSKmsSingleAlias, 20 Check: resource.ComposeTestCheckFunc( 21 testAccCheckAWSKmsAliasExists("aws_kms_alias.single"), 22 ), 23 }, 24 resource.TestStep{ 25 Config: testAccAWSKmsSingleAlias_modified, 26 Check: resource.ComposeTestCheckFunc( 27 testAccCheckAWSKmsAliasExists("aws_kms_alias.single"), 28 ), 29 }, 30 }, 31 }) 32 } 33 34 func TestAccAWSKmsAlias_multiple(t *testing.T) { 35 resource.Test(t, resource.TestCase{ 36 PreCheck: func() { testAccPreCheck(t) }, 37 Providers: testAccProviders, 38 CheckDestroy: testAccCheckAWSKmsAliasDestroy, 39 Steps: []resource.TestStep{ 40 resource.TestStep{ 41 Config: testAccAWSKmsMultipleAliases, 42 Check: resource.ComposeTestCheckFunc( 43 testAccCheckAWSKmsAliasExists("aws_kms_alias.one"), 44 testAccCheckAWSKmsAliasExists("aws_kms_alias.two"), 45 ), 46 }, 47 }, 48 }) 49 } 50 51 func testAccCheckAWSKmsAliasDestroy(s *terraform.State) error { 52 conn := testAccProvider.Meta().(*AWSClient).kmsconn 53 54 for _, rs := range s.RootModule().Resources { 55 if rs.Type != "aws_kms_alias" { 56 continue 57 } 58 59 entry, err := findKmsAliasByName(conn, rs.Primary.ID, nil) 60 if err != nil { 61 return err 62 } 63 if entry != nil { 64 return fmt.Errorf("KMS alias still exists:\n%#v", entry) 65 } 66 67 return nil 68 } 69 70 return nil 71 } 72 73 func testAccCheckAWSKmsAliasExists(name string) resource.TestCheckFunc { 74 return func(s *terraform.State) error { 75 _, ok := s.RootModule().Resources[name] 76 if !ok { 77 return fmt.Errorf("Not found: %s", name) 78 } 79 80 return nil 81 } 82 } 83 84 var kmsAliasTimestamp = time.Now().Format(time.RFC1123) 85 var testAccAWSKmsSingleAlias = fmt.Sprintf(` 86 resource "aws_kms_key" "one" { 87 description = "Terraform acc test One %s" 88 deletion_window_in_days = 7 89 } 90 resource "aws_kms_key" "two" { 91 description = "Terraform acc test Two %s" 92 deletion_window_in_days = 7 93 } 94 95 resource "aws_kms_alias" "single" { 96 name = "alias/tf-acc-key-alias" 97 target_key_id = "${aws_kms_key.one.key_id}" 98 }`, kmsAliasTimestamp, kmsAliasTimestamp) 99 100 var testAccAWSKmsSingleAlias_modified = fmt.Sprintf(` 101 resource "aws_kms_key" "one" { 102 description = "Terraform acc test One %s" 103 deletion_window_in_days = 7 104 } 105 resource "aws_kms_key" "two" { 106 description = "Terraform acc test Two %s" 107 deletion_window_in_days = 7 108 } 109 110 resource "aws_kms_alias" "single" { 111 name = "alias/tf-acc-key-alias" 112 target_key_id = "${aws_kms_key.two.key_id}" 113 }`, kmsAliasTimestamp, kmsAliasTimestamp) 114 115 var testAccAWSKmsMultipleAliases = fmt.Sprintf(` 116 resource "aws_kms_key" "single" { 117 description = "Terraform acc test One %s" 118 deletion_window_in_days = 7 119 } 120 121 resource "aws_kms_alias" "one" { 122 name = "alias/tf-acc-key-alias-one" 123 target_key_id = "${aws_kms_key.single.key_id}" 124 } 125 resource "aws_kms_alias" "two" { 126 name = "alias/tf-acc-key-alias-two" 127 target_key_id = "${aws_kms_key.single.key_id}" 128 }`, kmsAliasTimestamp)