Skip to content

Commit

Permalink
Generates tagging tests for resiliencehub
Browse files Browse the repository at this point in the history
  • Loading branch information
gdavison committed Oct 18, 2024
1 parent ab2fffa commit 2c00e58
Show file tree
Hide file tree
Showing 11 changed files with 2,621 additions and 72 deletions.
1 change: 1 addition & 0 deletions internal/service/resiliencehub/generate.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

//go:generate go run ../../generate/tags/main.go -AWSSDKVersion=2 -ServiceTagsMap -KVTValues -SkipTypesImp -ListTags -ListTagsInIDElem=ResourceArn -ListTagsOutTagsElem=Tags -TagOp=TagResource -TagInIDElem=ResourceArn -UntagOp=UntagResource -UpdateTags
//go:generate go run ../../generate/servicepackage/main.go
//go:generate go run ../../generate/tagstests/main.go
// ONLY generate directives and package declaration! Do not add anything else to this file.

package resiliencehub
2 changes: 2 additions & 0 deletions internal/service/resiliencehub/resiliency_policy.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ import (

// @FrameworkResource("aws_resiliencehub_resiliency_policy", name="Resiliency Policy")
// @Tags(identifierAttribute="arn")
// @Testing(existsType="github.com/aws/aws-sdk-go-v2/service/resiliencehub;resiliencehub.DescribeResiliencyPolicyOutput")
// @Testing(importStateIdAttribute="arn")
func newResourceResiliencyPolicy(_ context.Context) (resource.ResourceWithConfigure, error) {
r := &resourceResiliencyPolicy{}

Expand Down
2,325 changes: 2,325 additions & 0 deletions internal/service/resiliencehub/resiliency_policy_tags_gen_test.go

Large diffs are not rendered by default.

87 changes: 15 additions & 72 deletions internal/service/resiliencehub/resiliency_policy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ func TestAccResilienceHubResiliencyPolicy_basic(t *testing.T) {
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateIdFunc: acctest.AttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateVerify: true,
ImportStateVerifyIdentifierAttribute: names.AttrARN,
},
Expand Down Expand Up @@ -118,7 +118,7 @@ func TestAccResilienceHubResiliencyPolicy_dataLocationConstraint(t *testing.T) {
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateIdFunc: acctest.AttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateVerify: true,
ImportStateVerifyIdentifierAttribute: names.AttrARN,
},
Expand All @@ -140,7 +140,7 @@ func TestAccResilienceHubResiliencyPolicy_dataLocationConstraint(t *testing.T) {
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateIdFunc: acctest.AttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateVerify: true,
ImportStateVerifyIdentifierAttribute: names.AttrARN,
},
Expand Down Expand Up @@ -193,7 +193,7 @@ func TestAccResilienceHubResiliencyPolicy_description(t *testing.T) {
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateIdFunc: acctest.AttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateVerify: true,
ImportStateVerifyIdentifierAttribute: names.AttrARN,
},
Expand All @@ -215,7 +215,7 @@ func TestAccResilienceHubResiliencyPolicy_description(t *testing.T) {
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateIdFunc: acctest.AttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateVerify: true,
ImportStateVerifyIdentifierAttribute: names.AttrARN,
},
Expand Down Expand Up @@ -264,7 +264,7 @@ func TestAccResilienceHubResiliencyPolicy_name(t *testing.T) {
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateIdFunc: acctest.AttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateVerify: true,
ImportStateVerifyIdentifierAttribute: names.AttrARN,
},
Expand All @@ -286,7 +286,7 @@ func TestAccResilienceHubResiliencyPolicy_name(t *testing.T) {
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateIdFunc: acctest.AttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateVerify: true,
ImportStateVerifyIdentifierAttribute: names.AttrARN,
},
Expand Down Expand Up @@ -346,7 +346,7 @@ func TestAccResilienceHubResiliencyPolicy_policy(t *testing.T) {
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateIdFunc: acctest.AttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateVerify: true,
ImportStateVerifyIdentifierAttribute: names.AttrARN,
},
Expand Down Expand Up @@ -375,7 +375,7 @@ func TestAccResilienceHubResiliencyPolicy_policy(t *testing.T) {
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateIdFunc: acctest.AttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateVerify: true,
ImportStateVerifyIdentifierAttribute: names.AttrARN,
},
Expand Down Expand Up @@ -404,7 +404,7 @@ func TestAccResilienceHubResiliencyPolicy_policy(t *testing.T) {
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateIdFunc: acctest.AttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateVerify: true,
ImportStateVerifyIdentifierAttribute: names.AttrARN,
},
Expand Down Expand Up @@ -464,7 +464,7 @@ func TestAccResilienceHubResiliencyPolicy_policyWithRegion(t *testing.T) {
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateIdFunc: acctest.AttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateVerify: true,
ImportStateVerifyIdentifierAttribute: names.AttrARN,
},
Expand Down Expand Up @@ -493,7 +493,7 @@ func TestAccResilienceHubResiliencyPolicy_policyWithRegion(t *testing.T) {
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateIdFunc: acctest.AttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateVerify: true,
ImportStateVerifyIdentifierAttribute: names.AttrARN,
},
Expand Down Expand Up @@ -522,7 +522,7 @@ func TestAccResilienceHubResiliencyPolicy_policyWithRegion(t *testing.T) {
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateIdFunc: acctest.AttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateVerify: true,
ImportStateVerifyIdentifierAttribute: names.AttrARN,
},
Expand Down Expand Up @@ -570,7 +570,7 @@ func TestAccResilienceHubResiliencyPolicy_tier(t *testing.T) {
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateIdFunc: acctest.AttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateVerify: true,
ImportStateVerifyIdentifierAttribute: names.AttrARN,
},
Expand All @@ -592,60 +592,14 @@ func TestAccResilienceHubResiliencyPolicy_tier(t *testing.T) {
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateIdFunc: acctest.AttrImportStateIdFunc(resourceName, names.AttrARN),
ImportStateVerify: true,
ImportStateVerifyIdentifierAttribute: names.AttrARN,
},
},
})
}

func TestAccResilienceHubResiliencyPolicy_tags(t *testing.T) {
ctx := acctest.Context(t)
if testing.Short() {
t.Skip("skipping long-running test in short mode")
}

var policy1, policy2 resiliencehub.DescribeResiliencyPolicyOutput
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
resourceName := "aws_resiliencehub_resiliency_policy.test"

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() {
acctest.PreCheck(ctx, t)
acctest.PreCheckPartitionNot(t, names.USGovCloudPartitionID)
testAccPreCheck(ctx, t)
},
ErrorCheck: acctest.ErrorCheck(t, names.ResilienceHubServiceID),
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,
CheckDestroy: testAccCheckResiliencyPolicyDestroy(ctx),
Steps: []resource.TestStep{
{
Config: testAccResiliencyPolicyConfig_tags1(rName, acctest.CtKey1, acctest.CtValue1),
Check: resource.ComposeTestCheckFunc(
testAccCheckResiliencyPolicyExists(ctx, resourceName, &policy1),
resource.TestCheckResourceAttr(resourceName, names.AttrName, rName),
resource.TestCheckResourceAttr(resourceName, acctest.CtTagsPercent, acctest.Ct1),
resource.TestCheckResourceAttr(resourceName, acctest.CtTagsKey1, acctest.CtValue1),
acctest.MatchResourceAttrRegionalARN(resourceName, names.AttrARN, names.ResilienceHubServiceID, regexache.MustCompile(`resiliency-policy/.+`)),
),
},
{
Config: testAccResiliencyPolicyConfig_tag2(rName, acctest.CtKey1, acctest.CtValue1Updated, acctest.CtKey2, acctest.CtValue2),
Check: resource.ComposeTestCheckFunc(
testAccCheckResiliencyPolicyExists(ctx, resourceName, &policy2),
testAccCheckResiliencyPolicyNotRecreated(&policy1, &policy2),
resource.TestCheckResourceAttr(resourceName, names.AttrName, rName),
resource.TestCheckResourceAttr(resourceName, acctest.CtTagsPercent, acctest.Ct2),
resource.TestCheckResourceAttr(resourceName, acctest.CtTagsKey1, acctest.CtValue1Updated),
resource.TestCheckResourceAttr(resourceName, acctest.CtTagsKey2, acctest.CtValue2),
acctest.MatchResourceAttrRegionalARN(resourceName, names.AttrARN, names.ResilienceHubServiceID, regexache.MustCompile(`resiliency-policy/.+`)),
),
},
},
})
}

func TestAccResilienceHubResiliencyPolicy_disappears(t *testing.T) {
ctx := acctest.Context(t)
if testing.Short() {
Expand Down Expand Up @@ -731,17 +685,6 @@ func testAccCheckResiliencyPolicyExists(ctx context.Context, name string, policy
}
}

func testAccAttrImportStateIdFunc(resourceName, attrName string) resource.ImportStateIdFunc {
return func(s *terraform.State) (string, error) {
rs, ok := s.RootModule().Resources[resourceName]
if !ok {
return "", fmt.Errorf("Not found: %s", resourceName)
}

return rs.Primary.Attributes[attrName], nil
}
}

func testAccPreCheck(ctx context.Context, t *testing.T) {
conn := acctest.Provider.Meta().(*conns.AWSClient).ResilienceHubClient(ctx)

Expand Down
16 changes: 16 additions & 0 deletions internal/service/resiliencehub/tags_gen_test.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

resource "aws_resiliencehub_resiliency_policy" "test" {
name = var.rName

tier = "NotApplicable"

policy {
az {
rpo = "1h0m0s"
rto = "1h0m0s"
}
hardware {
rpo = "1h0m0s"
rto = "1h0m0s"
}
software {
rpo = "1h0m0s"
rto = "1h0m0s"
}
}

tags = var.resource_tags
}

variable "rName" {
description = "Name for resource"
type = string
nullable = false
}

variable "resource_tags" {
description = "Tags to set on resource. To specify no tags, set to `null`"
# Not setting a default, so that this must explicitly be set to `null` to specify no tags
type = map(string)
nullable = true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

provider "null" {}

resource "aws_resiliencehub_resiliency_policy" "test" {
name = var.rName

tier = "NotApplicable"

policy {
az {
rpo = "1h0m0s"
rto = "1h0m0s"
}
hardware {
rpo = "1h0m0s"
rto = "1h0m0s"
}
software {
rpo = "1h0m0s"
rto = "1h0m0s"
}
}

tags = {
(var.unknownTagKey) = null_resource.test.id
}
}

resource "null_resource" "test" {}

variable "rName" {
description = "Name for resource"
type = string
nullable = false
}

variable "unknownTagKey" {
type = string
nullable = false
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

provider "null" {}

resource "aws_resiliencehub_resiliency_policy" "test" {
name = var.rName

tier = "NotApplicable"

policy {
az {
rpo = "1h0m0s"
rto = "1h0m0s"
}
hardware {
rpo = "1h0m0s"
rto = "1h0m0s"
}
software {
rpo = "1h0m0s"
rto = "1h0m0s"
}
}

tags = {
(var.unknownTagKey) = null_resource.test.id
(var.knownTagKey) = var.knownTagValue
}
}

resource "null_resource" "test" {}

variable "rName" {
description = "Name for resource"
type = string
nullable = false
}

variable "unknownTagKey" {
type = string
nullable = false
}

variable "knownTagKey" {
type = string
nullable = false
}

variable "knownTagValue" {
type = string
nullable = false
}
Loading

0 comments on commit 2c00e58

Please sign in to comment.