/azurerm/internal/services/kusto/tests/kusto_database_resource_test.go
https://github.com/terraform-providers/terraform-provider-azurerm · Go · 309 lines · 281 code · 27 blank · 1 comment · 12 complexity · 809ecfbc24e81ef0e95f979ab9e65cbe MD5 · raw file
- package tests
- import (
- "fmt"
- "testing"
- "github.com/hashicorp/terraform-plugin-sdk/helper/resource"
- "github.com/hashicorp/terraform-plugin-sdk/terraform"
- "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance"
- "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/clients"
- "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils"
- )
- func TestAccAzureRMKustoDatabase_basic(t *testing.T) {
- data := acceptance.BuildTestData(t, "azurerm_kusto_database", "test")
- resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { acceptance.PreCheck(t) },
- Providers: acceptance.SupportedProviders,
- CheckDestroy: testCheckAzureRMKustoDatabaseDestroy,
- Steps: []resource.TestStep{
- {
- Config: testAccAzureRMKustoDatabase_basic(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMKustoDatabaseExists(data.ResourceName),
- ),
- },
- data.ImportStep(),
- },
- })
- }
- func TestAccAzureRMKustoDatabase_softDeletePeriod(t *testing.T) {
- data := acceptance.BuildTestData(t, "azurerm_kusto_database", "test")
- resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { acceptance.PreCheck(t) },
- Providers: acceptance.SupportedProviders,
- CheckDestroy: testCheckAzureRMKustoDatabaseDestroy,
- Steps: []resource.TestStep{
- {
- Config: testAccAzureRMKustoDatabase_softDeletePeriod(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMKustoDatabaseExists(data.ResourceName),
- resource.TestCheckResourceAttr(data.ResourceName, "soft_delete_period", "P7D"),
- ),
- },
- {
- Config: testAccAzureRMKustoDatabase_softDeletePeriodUpdate(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMKustoDatabaseExists(data.ResourceName),
- resource.TestCheckResourceAttr(data.ResourceName, "soft_delete_period", "P31D"),
- ),
- },
- },
- })
- }
- func TestAccAzureRMKustoDatabase_hotCachePeriod(t *testing.T) {
- data := acceptance.BuildTestData(t, "azurerm_kusto_database", "test")
- resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { acceptance.PreCheck(t) },
- Providers: acceptance.SupportedProviders,
- CheckDestroy: testCheckAzureRMKustoDatabaseDestroy,
- Steps: []resource.TestStep{
- {
- Config: testAccAzureRMKustoDatabase_hotCachePeriod(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMKustoDatabaseExists(data.ResourceName),
- resource.TestCheckResourceAttr(data.ResourceName, "hot_cache_period", "P7D"),
- ),
- },
- {
- Config: testAccAzureRMKustoDatabase_hotCachePeriodUpdate(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMKustoDatabaseExists(data.ResourceName),
- resource.TestCheckResourceAttr(data.ResourceName, "hot_cache_period", "P14DT12H"),
- ),
- },
- },
- })
- }
- func testAccAzureRMKustoDatabase_basic(data acceptance.TestData) string {
- return fmt.Sprintf(`
- provider "azurerm" {
- features {}
- }
- resource "azurerm_resource_group" "rg" {
- name = "acctestRG-%d"
- location = "%s"
- }
- resource "azurerm_kusto_cluster" "cluster" {
- name = "acctestkc%s"
- location = azurerm_resource_group.rg.location
- resource_group_name = azurerm_resource_group.rg.name
- sku {
- name = "Dev(No SLA)_Standard_D11_v2"
- capacity = 1
- }
- }
- resource "azurerm_kusto_database" "test" {
- name = "acctestkd-%d"
- resource_group_name = azurerm_resource_group.rg.name
- location = azurerm_resource_group.rg.location
- cluster_name = azurerm_kusto_cluster.cluster.name
- }
- `, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomInteger)
- }
- func testAccAzureRMKustoDatabase_softDeletePeriod(data acceptance.TestData) string {
- return fmt.Sprintf(`
- provider "azurerm" {
- features {}
- }
- resource "azurerm_resource_group" "rg" {
- name = "acctestRG-%d"
- location = "%s"
- }
- resource "azurerm_kusto_cluster" "cluster" {
- name = "acctestkc%s"
- location = azurerm_resource_group.rg.location
- resource_group_name = azurerm_resource_group.rg.name
- sku {
- name = "Dev(No SLA)_Standard_D11_v2"
- capacity = 1
- }
- }
- resource "azurerm_kusto_database" "test" {
- name = "acctestkd-%d"
- resource_group_name = azurerm_resource_group.rg.name
- location = azurerm_resource_group.rg.location
- cluster_name = azurerm_kusto_cluster.cluster.name
- soft_delete_period = "P7D"
- }
- `, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomInteger)
- }
- func testAccAzureRMKustoDatabase_softDeletePeriodUpdate(data acceptance.TestData) string {
- return fmt.Sprintf(`
- provider "azurerm" {
- features {}
- }
- resource "azurerm_resource_group" "rg" {
- name = "acctestRG-%d"
- location = "%s"
- }
- resource "azurerm_kusto_cluster" "cluster" {
- name = "acctestkc%s"
- location = azurerm_resource_group.rg.location
- resource_group_name = azurerm_resource_group.rg.name
- sku {
- name = "Dev(No SLA)_Standard_D11_v2"
- capacity = 1
- }
- }
- resource "azurerm_kusto_database" "test" {
- name = "acctestkd-%d"
- resource_group_name = azurerm_resource_group.rg.name
- location = azurerm_resource_group.rg.location
- cluster_name = azurerm_kusto_cluster.cluster.name
- soft_delete_period = "P31D"
- }
- `, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomInteger)
- }
- func testAccAzureRMKustoDatabase_hotCachePeriod(data acceptance.TestData) string {
- return fmt.Sprintf(`
- provider "azurerm" {
- features {}
- }
- resource "azurerm_resource_group" "rg" {
- name = "acctestRG-%d"
- location = "%s"
- }
- resource "azurerm_kusto_cluster" "cluster" {
- name = "acctestkc%s"
- location = azurerm_resource_group.rg.location
- resource_group_name = azurerm_resource_group.rg.name
- sku {
- name = "Dev(No SLA)_Standard_D11_v2"
- capacity = 1
- }
- }
- resource "azurerm_kusto_database" "test" {
- name = "acctestkd-%d"
- resource_group_name = azurerm_resource_group.rg.name
- location = azurerm_resource_group.rg.location
- cluster_name = azurerm_kusto_cluster.cluster.name
- hot_cache_period = "P7D"
- }
- `, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomInteger)
- }
- func testAccAzureRMKustoDatabase_hotCachePeriodUpdate(data acceptance.TestData) string {
- return fmt.Sprintf(`
- provider "azurerm" {
- features {}
- }
- resource "azurerm_resource_group" "rg" {
- name = "acctestRG-%d"
- location = "%s"
- }
- resource "azurerm_kusto_cluster" "cluster" {
- name = "acctestkc%s"
- location = azurerm_resource_group.rg.location
- resource_group_name = azurerm_resource_group.rg.name
- sku {
- name = "Dev(No SLA)_Standard_D11_v2"
- capacity = 1
- }
- }
- resource "azurerm_kusto_database" "test" {
- name = "acctestkd-%d"
- resource_group_name = azurerm_resource_group.rg.name
- location = azurerm_resource_group.rg.location
- cluster_name = azurerm_kusto_cluster.cluster.name
- hot_cache_period = "P14DT12H"
- }
- `, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomInteger)
- }
- func testCheckAzureRMKustoDatabaseDestroy(s *terraform.State) error {
- client := acceptance.AzureProvider.Meta().(*clients.Client).Kusto.DatabasesClient
- ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext
- for _, rs := range s.RootModule().Resources {
- if rs.Type != "azurerm_kusto_database" {
- continue
- }
- resourceGroup := rs.Primary.Attributes["resource_group_name"]
- clusterName := rs.Primary.Attributes["cluster_name"]
- name := rs.Primary.Attributes["name"]
- resp, err := client.Get(ctx, resourceGroup, clusterName, name)
- if err != nil {
- if utils.ResponseWasNotFound(resp.Response) {
- return nil
- }
- return err
- }
- return nil
- }
- return nil
- }
- func testCheckAzureRMKustoDatabaseExists(resourceName string) resource.TestCheckFunc {
- return func(s *terraform.State) error {
- client := acceptance.AzureProvider.Meta().(*clients.Client).Kusto.DatabasesClient
- ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext
- // Ensure we have enough information in state to look up in API
- rs, ok := s.RootModule().Resources[resourceName]
- if !ok {
- return fmt.Errorf("Not found: %s", resourceName)
- }
- kustoDatabase := rs.Primary.Attributes["name"]
- resourceGroup, hasResourceGroup := rs.Primary.Attributes["resource_group_name"]
- if !hasResourceGroup {
- return fmt.Errorf("Bad: no resource group found in state for Kusto Database: %s", kustoDatabase)
- }
- clusterName, hasClusterName := rs.Primary.Attributes["cluster_name"]
- if !hasClusterName {
- return fmt.Errorf("Bad: no resource group found in state for Kusto Database: %s", kustoDatabase)
- }
- resp, err := client.Get(ctx, resourceGroup, clusterName, kustoDatabase)
- if err != nil {
- if utils.ResponseWasNotFound(resp.Response) {
- return fmt.Errorf("Bad: Kusto Database %q (resource group: %q, cluster: %q) does not exist", kustoDatabase, resourceGroup, clusterName)
- }
- return fmt.Errorf("Bad: Get on DatabasesClient: %+v", err)
- }
- return nil
- }
- }