Skip to content

Commit

Permalink
adding tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ANUGRAHG committed Jul 22, 2024
1 parent 634ad9d commit 4e8654e
Show file tree
Hide file tree
Showing 9 changed files with 3,345 additions and 204 deletions.
967 changes: 967 additions & 0 deletions internal/provider/fixtures/resource_directory_role.error_import.yaml

Large diffs are not rendered by default.

Large diffs are not rendered by default.

1,105 changes: 1,105 additions & 0 deletions internal/provider/fixtures/resource_directory_role.update.yaml

Large diffs are not rendered by default.

102 changes: 51 additions & 51 deletions internal/provider/fixtures/resource_directory_role.yaml

Large diffs are not rendered by default.

967 changes: 967 additions & 0 deletions internal/provider/fixtures/resource_subaccount_role.error_import.yaml

Large diffs are not rendered by default.

136 changes: 68 additions & 68 deletions internal/provider/fixtures/resource_subaccount_role.update.yaml

Large diffs are not rendered by default.

128 changes: 64 additions & 64 deletions internal/provider/fixtures/resource_subaccount_role.yaml

Large diffs are not rendered by default.

69 changes: 69 additions & 0 deletions internal/provider/resource_directory_role_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"testing"

"github.com/hashicorp/terraform-plugin-testing/helper/resource"
"github.com/hashicorp/terraform-plugin-testing/terraform"
)

func TestResourceDirectoryRole(t *testing.T) {
Expand Down Expand Up @@ -116,6 +117,64 @@ func TestResourceDirectoryRole(t *testing.T) {
},
})
})

t.Run("error path - update role name", func(t *testing.T) {
rec, user := setupVCR(t, "fixtures/resource_directory_role.update")
defer stopQuietly(rec)

resource.Test(t, resource.TestCase{
IsUnitTest: true,
ProtoV6ProviderFactories: getProviders(rec.GetDefaultClient()),
Steps: []resource.TestStep{
{
Config: hclProviderFor(user) + hclResourceDirectoryRole(
"uut",
"integration-test-dir-roles",
"Directory Viewer Test",
"Directory_Viewer",
"cis-central!b13",
),
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttr("btp_directory_role.uut", "name", "Directory Viewer Test"),
resource.TestCheckResourceAttr("btp_directory_role.uut", "role_template_name", "Directory_Viewer"),
resource.TestCheckResourceAttr("btp_directory_role.uut", "app_id", "cis-central!b13"),
),
},
{
Config: hclProviderFor(user) + hclResourceDirectoryRole(
"uut",
"integration-test-dir-roles",
"Directory Viewer Test Updated",
"Directory_Viewer",
"cis-central!b13",
),
ExpectError: regexp.MustCompile(`This resource is not supposed to be updated`),
},
},
})
})

t.Run("error path - import fails", func(t *testing.T) {
rec, user := setupVCR(t, "fixtures/resource_directory_role.error_import")
defer stopQuietly(rec)

resource.Test(t, resource.TestCase{
IsUnitTest: true,
ProtoV6ProviderFactories: getProviders(rec.GetDefaultClient()),
Steps: []resource.TestStep{
{
Config: hclProviderFor(user) + hclResourceDirectoryRole("uut", "integration-test-dir-roles", "Directory Viewer Test", "Directory_Viewer", "cis-central!b13"),
},
{
ResourceName: "btp_directory_role.uut",
ImportStateIdFunc: getDirectoryRoleImportIdNoAppIdNoRoleTemplateName("btp_directory_role.uut"),
ImportState: true,
ImportStateVerify: true,
ExpectError: regexp.MustCompile(`Unexpected Import Identifier`),
},
},
})
})
}

func hclResourceDirectoryRole(resourceName string, directoryName string, name string, roleTemplateName string, appId string) string {
Expand All @@ -140,3 +199,13 @@ resource "btp_directory_role" "%s" {
}`
return fmt.Sprintf(template, resourceName, directoryId, name, roleTemplateName, appId)
}

func getDirectoryRoleImportIdNoAppIdNoRoleTemplateName(resourceName string) resource.ImportStateIdFunc {
return func(state *terraform.State) (string, error) {
rs, ok := state.RootModule().Resources[resourceName]
if !ok {
return "", fmt.Errorf("not found: %s", resourceName)
}
return rs.Primary.Attributes["directory_id"], nil
}
}
33 changes: 33 additions & 0 deletions internal/provider/resource_subaccount_role_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"testing"

"github.com/hashicorp/terraform-plugin-testing/helper/resource"
"github.com/hashicorp/terraform-plugin-testing/terraform"
)

func TestResourceSubAccountRole(t *testing.T) {
Expand Down Expand Up @@ -141,6 +142,28 @@ func TestResourceSubAccountRole(t *testing.T) {
})
})

t.Run("error path - import fails", func(t *testing.T) {
rec, user := setupVCR(t, "fixtures/resource_subaccount_role.error_import")
defer stopQuietly(rec)

resource.Test(t, resource.TestCase{
IsUnitTest: true,
ProtoV6ProviderFactories: getProviders(rec.GetDefaultClient()),
Steps: []resource.TestStep{
{
Config: hclProviderFor(user) + hclResourceSubaccountRole("uut", "integration-test-acc-static", "Subaccount Viewer Test", "Subaccount_Viewer", "cis-local!b2"),
},
{
ResourceName: "btp_subaccount_role.uut",
ImportStateIdFunc: getSubaccountRoleImportIdNoAppIdNoRoleTemplateName("btp_subaccount_role.uut"),
ImportState: true,
ImportStateVerify: true,
ExpectError: regexp.MustCompile(`Unexpected Import Identifier`),
},
},
})
})

}

func hclResourceSubaccountRole(resourceName string, subaccountName string, name string, roleTemplateName string, appId string) string {
Expand All @@ -165,3 +188,13 @@ resource "btp_subaccount_role" "%s" {

return fmt.Sprintf(template, resourceName, subaccountId, name, roleTemplateName, appId)
}

func getSubaccountRoleImportIdNoAppIdNoRoleTemplateName(resourceName string) resource.ImportStateIdFunc {
return func(state *terraform.State) (string, error) {
rs, ok := state.RootModule().Resources[resourceName]
if !ok {
return "", fmt.Errorf("not found: %s", resourceName)
}
return rs.Primary.Attributes["subaccount_id"], nil
}
}

0 comments on commit 4e8654e

Please sign in to comment.