/azurerm/internal/services/monitor/tests/monitor_log_profile_data_source_test.go

https://github.com/terraform-providers/terraform-provider-azurerm · Go · 152 lines · 140 code · 9 blank · 3 comment · 0 complexity · 177bdbdeb257756e45bba0d79f4c6c99 MD5 · raw file

  1. package tests
  2. import (
  3. "fmt"
  4. "testing"
  5. "github.com/hashicorp/terraform-plugin-sdk/helper/resource"
  6. "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance"
  7. )
  8. // These tests are actually run as part of the resoure ones due to
  9. // Azure only being happy about provisioning one per subscription at once
  10. // (which our test suite can't easily workaround)
  11. func testAccDataSourceAzureRMMonitorLogProfile_storageaccount(t *testing.T) {
  12. data := acceptance.BuildTestData(t, "data.azurerm_monitor_log_profile", "test")
  13. resource.ParallelTest(t, resource.TestCase{
  14. PreCheck: func() { acceptance.PreCheck(t) },
  15. Providers: acceptance.SupportedProviders,
  16. CheckDestroy: testCheckAzureRMLogProfileDestroy,
  17. Steps: []resource.TestStep{
  18. {
  19. Config: testAccDataSourceAzureRMMonitorLogProfile_storageaccountConfig(data),
  20. Check: resource.ComposeTestCheckFunc(
  21. resource.TestCheckResourceAttrSet(data.ResourceName, "name"),
  22. resource.TestCheckResourceAttrSet(data.ResourceName, "categories.#"),
  23. resource.TestCheckResourceAttrSet(data.ResourceName, "locations.#"),
  24. resource.TestCheckResourceAttrSet(data.ResourceName, "storage_account_id"),
  25. resource.TestCheckResourceAttr(data.ResourceName, "servicebus_rule_id", ""),
  26. resource.TestCheckResourceAttr(data.ResourceName, "retention_policy.#", "1"),
  27. resource.TestCheckResourceAttrSet(data.ResourceName, "retention_policy.0.enabled"),
  28. resource.TestCheckResourceAttrSet(data.ResourceName, "retention_policy.0.days"),
  29. ),
  30. },
  31. },
  32. })
  33. }
  34. func testAccDataSourceAzureRMMonitorLogProfile_eventhub(t *testing.T) {
  35. data := acceptance.BuildTestData(t, "data.azurerm_monitor_log_profile", "test")
  36. resource.ParallelTest(t, resource.TestCase{
  37. PreCheck: func() { acceptance.PreCheck(t) },
  38. Providers: acceptance.SupportedProviders,
  39. CheckDestroy: testCheckAzureRMLogProfileDestroy,
  40. Steps: []resource.TestStep{
  41. {
  42. Config: testAccDataSourceAzureRMMonitorLogProfile_eventhubConfig(data),
  43. Check: resource.ComposeTestCheckFunc(
  44. resource.TestCheckResourceAttrSet(data.ResourceName, "name"),
  45. resource.TestCheckResourceAttrSet(data.ResourceName, "categories.#"),
  46. resource.TestCheckResourceAttrSet(data.ResourceName, "locations.#"),
  47. resource.TestCheckResourceAttr(data.ResourceName, "storage_account_id", ""),
  48. resource.TestCheckResourceAttrSet(data.ResourceName, "servicebus_rule_id"),
  49. resource.TestCheckResourceAttr(data.ResourceName, "retention_policy.#", "1"),
  50. resource.TestCheckResourceAttrSet(data.ResourceName, "retention_policy.0.enabled"),
  51. resource.TestCheckResourceAttrSet(data.ResourceName, "retention_policy.0.days"),
  52. ),
  53. },
  54. },
  55. })
  56. }
  57. func testAccDataSourceAzureRMMonitorLogProfile_storageaccountConfig(data acceptance.TestData) string {
  58. return fmt.Sprintf(`
  59. provider "azurerm" {
  60. features {}
  61. }
  62. resource "azurerm_resource_group" "test" {
  63. name = "acctestRG-%d"
  64. location = "%s"
  65. }
  66. resource "azurerm_storage_account" "test" {
  67. name = "acctestsa%s"
  68. resource_group_name = azurerm_resource_group.test.name
  69. location = azurerm_resource_group.test.location
  70. account_tier = "Standard"
  71. account_replication_type = "GRS"
  72. }
  73. resource "azurerm_monitor_log_profile" "test" {
  74. name = "acctestlp-%d"
  75. categories = [
  76. "Action",
  77. ]
  78. locations = [
  79. "%s",
  80. ]
  81. storage_account_id = azurerm_storage_account.test.id
  82. retention_policy {
  83. enabled = true
  84. days = 7
  85. }
  86. }
  87. data "azurerm_monitor_log_profile" "test" {
  88. name = azurerm_monitor_log_profile.test.name
  89. }
  90. `, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomInteger, data.Locations.Primary)
  91. }
  92. func testAccDataSourceAzureRMMonitorLogProfile_eventhubConfig(data acceptance.TestData) string {
  93. return fmt.Sprintf(`
  94. provider "azurerm" {
  95. features {}
  96. }
  97. resource "azurerm_resource_group" "test" {
  98. name = "acctestRG-%d"
  99. location = "%s"
  100. }
  101. resource "azurerm_eventhub_namespace" "test" {
  102. name = "acctestehns-%s"
  103. location = azurerm_resource_group.test.location
  104. resource_group_name = azurerm_resource_group.test.name
  105. sku = "Standard"
  106. capacity = 2
  107. }
  108. resource "azurerm_monitor_log_profile" "test" {
  109. name = "acctestlp-%d"
  110. categories = [
  111. "Action",
  112. ]
  113. locations = [
  114. "%s",
  115. ]
  116. # RootManageSharedAccessKey is created by default with listen, send, manage permissions
  117. servicebus_rule_id = "${azurerm_eventhub_namespace.test.id}/authorizationrules/RootManageSharedAccessKey"
  118. retention_policy {
  119. enabled = true
  120. days = 7
  121. }
  122. }
  123. data "azurerm_monitor_log_profile" "test" {
  124. name = azurerm_monitor_log_profile.test.name
  125. }
  126. `, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomInteger, data.Locations.Primary)
  127. }