/oci/database_autonomous_database_instance_wallet_management_test.go

https://github.com/oracle/terraform-provider-oci · Go · 106 lines · 80 code · 19 blank · 7 comment · 6 complexity · 5afe8f5ccc9e3203dd00712fb2996ea3 MD5 · raw file

  1. // Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved.
  2. // Licensed under the Mozilla Public License v2.0
  3. package oci
  4. import (
  5. "fmt"
  6. "strconv"
  7. "testing"
  8. "github.com/hashicorp/terraform-plugin-sdk/helper/resource"
  9. "github.com/hashicorp/terraform-plugin-sdk/terraform"
  10. "github.com/terraform-providers/terraform-provider-oci/httpreplay"
  11. )
  12. var (
  13. adbWalletMgmtDbName = RandomString(1, charsetWithoutDigits) + RandomString(13, charset)
  14. AutonomousDatabaseInstanceWalletManagementResourceConfig = AutonomousDatabaseInstanceWalletManagementResourceDependencies +
  15. GenerateResourceFromRepresentationMap("oci_database_autonomous_database_instance_wallet_management", "test_autonomous_database_instance_wallet_management", Optional, Update, autonomousDatabaseInstanceWalletManagementRepresentation)
  16. autonomousDatabaseInstanceWalletManagementSingularDataSourceRepresentation = map[string]interface{}{
  17. "autonomous_database_id": Representation{RepType: Required, Create: `${oci_database_autonomous_database.test_autonomous_database.id}`},
  18. }
  19. autonomousDatabaseInstanceWalletManagementRepresentation = map[string]interface{}{
  20. "autonomous_database_id": Representation{RepType: Required, Create: `${oci_database_autonomous_database.test_autonomous_database.id}`},
  21. "should_rotate": Representation{RepType: Optional, Create: `false`, Update: `true`},
  22. }
  23. AutonomousDatabaseInstanceWalletManagementResourceDependencies = GenerateResourceFromRepresentationMap("oci_database_autonomous_database", "test_autonomous_database", Required, Create,
  24. GetUpdatedRepresentationCopy("db_name", Representation{RepType: Required, Create: adbWalletMgmtDbName}, autonomousDatabaseRepresentation))
  25. )
  26. // issue-routing-tag: database/dbaas-adb
  27. func TestDatabaseAutonomousDatabaseInstanceWalletManagementResource_basic(t *testing.T) {
  28. httpreplay.SetScenario("TestDatabaseAutonomousDatabaseInstanceWalletManagementResource_basic")
  29. defer httpreplay.SaveScenario()
  30. config := testProviderConfig()
  31. compartmentId := getEnvSettingWithBlankDefault("compartment_ocid")
  32. compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
  33. resourceName := "oci_database_autonomous_database_instance_wallet_management.test_autonomous_database_instance_wallet_management"
  34. singularDatasourceName := "data.oci_database_autonomous_database_instance_wallet_management.test_autonomous_database_instance_wallet_management"
  35. var resId, resId2 string
  36. // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "Create with optionals" step in the test.
  37. SaveConfigContent(config+compartmentIdVariableStr+AutonomousDatabaseInstanceWalletManagementResourceDependencies+
  38. GenerateResourceFromRepresentationMap("oci_database_autonomous_database_instance_wallet_management", "test_autonomous_database_instance_wallet_management", Optional, Create, autonomousDatabaseInstanceWalletManagementRepresentation), "database", "autonomousDatabaseInstanceWalletManagement", t)
  39. ResourceTest(t, nil, []resource.TestStep{
  40. // verify Create
  41. {
  42. Config: config + compartmentIdVariableStr + AutonomousDatabaseInstanceWalletManagementResourceDependencies +
  43. GenerateResourceFromRepresentationMap("oci_database_autonomous_database_instance_wallet_management", "test_autonomous_database_instance_wallet_management", Required, Create, autonomousDatabaseInstanceWalletManagementRepresentation),
  44. Check: ComposeAggregateTestCheckFuncWrapper(
  45. resource.TestCheckResourceAttrSet(resourceName, "autonomous_database_id"),
  46. resource.TestCheckResourceAttr(resourceName, "state", "ACTIVE"),
  47. func(s *terraform.State) (err error) {
  48. resId, err = FromInstanceState(s, resourceName, "id")
  49. if isEnableExportCompartment, _ := strconv.ParseBool(getEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment {
  50. if errExport := TestExportCompartmentWithResourceName(&resId, &compartmentId, resourceName); errExport != nil {
  51. return errExport
  52. }
  53. }
  54. return err
  55. },
  56. ),
  57. },
  58. // verify updates to updatable parameters
  59. {
  60. Config: config + compartmentIdVariableStr + AutonomousDatabaseInstanceWalletManagementResourceDependencies +
  61. GenerateResourceFromRepresentationMap("oci_database_autonomous_database_instance_wallet_management", "test_autonomous_database_instance_wallet_management", Optional, Update, autonomousDatabaseInstanceWalletManagementRepresentation),
  62. Check: ComposeAggregateTestCheckFuncWrapper(
  63. resource.TestCheckResourceAttrSet(resourceName, "autonomous_database_id"),
  64. resource.TestCheckResourceAttr(resourceName, "state", "ACTIVE"),
  65. resource.TestCheckResourceAttrSet(resourceName, "time_rotated"),
  66. func(s *terraform.State) (err error) {
  67. resId2, err = FromInstanceState(s, resourceName, "id")
  68. if resId != resId2 {
  69. return fmt.Errorf("Resource recreated when it was supposed to be updated.")
  70. }
  71. return err
  72. },
  73. ),
  74. },
  75. // verify singular datasource
  76. {
  77. Config: config +
  78. GenerateDataSourceFromRepresentationMap("oci_database_autonomous_database_instance_wallet_management", "test_autonomous_database_instance_wallet_management", Required, Create, autonomousDatabaseInstanceWalletManagementSingularDataSourceRepresentation) +
  79. compartmentIdVariableStr + AutonomousDatabaseInstanceWalletManagementResourceConfig,
  80. Check: ComposeAggregateTestCheckFuncWrapper(
  81. resource.TestCheckResourceAttrSet(singularDatasourceName, "autonomous_database_id"),
  82. resource.TestCheckResourceAttr(singularDatasourceName, "state", "ACTIVE"),
  83. resource.TestCheckResourceAttrSet(singularDatasourceName, "time_rotated"),
  84. ),
  85. },
  86. })
  87. }