From 9db1add3c3846ec19295eed4226ce0baab310d42 Mon Sep 17 00:00:00 2001
From: petems
Date: Tue, 20 Oct 2020 12:38:36 +0100
Subject: [PATCH] Adds test for new `key_vault_key_id` field
---
.../cosmos/cosmosdb_account_resource_test.go | 126 ++++++++++++++++++
1 file changed, 126 insertions(+)
diff --git a/azurerm/internal/services/cosmos/cosmosdb_account_resource_test.go b/azurerm/internal/services/cosmos/cosmosdb_account_resource_test.go
index 69c5e13557c89..8d25771008dc5 100644
--- a/azurerm/internal/services/cosmos/cosmosdb_account_resource_test.go
+++ b/azurerm/internal/services/cosmos/cosmosdb_account_resource_test.go
@@ -74,6 +74,29 @@ func TestAccAzureRMCosmosDBAccount_basic_parse_strong(t *testing.T) {
testAccAzureRMCosmosDBAccount_basicWith(t, documentdb.MongoDB, documentdb.Strong)
}
+func TestAccAzureRMCosmosDBAccount_key_vault_uri(t *testing.T) {
+ testAccAzureRMCosmosDBAccount_key_vault_uri(t, documentdb.MongoDB, documentdb.Strong)
+}
+
+func testAccAzureRMCosmosDBAccount_key_vault_uri(t *testing.T, kind documentdb.DatabaseAccountKind, consistency documentdb.DefaultConsistencyLevel) {
+ data := acceptance.BuildTestData(t, "azurerm_cosmosdb_account", "test")
+
+ resource.ParallelTest(t, resource.TestCase{
+ PreCheck: func() { acceptance.PreCheck(t) },
+ Providers: acceptance.SupportedProviders,
+ CheckDestroy: testCheckAzureRMCosmosDBAccountDestroy,
+ Steps: []resource.TestStep{
+ {
+ Config: checkAccAzureRMCosmosDBAccount_key_vault_uri(data, kind, consistency),
+ Check: resource.ComposeAggregateTestCheckFunc(
+ checkAccAzureRMCosmosDBAccount_basic(data, consistency, 1),
+ ),
+ },
+ data.ImportStep(),
+ },
+ })
+}
+
func testAccAzureRMCosmosDBAccount_basicWith(t *testing.T, kind documentdb.DatabaseAccountKind, consistency documentdb.DefaultConsistencyLevel) {
data := acceptance.BuildTestData(t, "azurerm_cosmosdb_account", "test")
@@ -993,3 +1016,106 @@ func checkAccAzureRMCosmosDBAccount_basic(data acceptance.TestData, consistency
resource.TestCheckResourceAttrSet(data.ResourceName, "secondary_readonly_key"),
)
}
+
+func checkAccAzureRMCosmosDBAccount_key_vault_uri(data acceptance.TestData, kind documentdb.DatabaseAccountKind, consistency documentdb.DefaultConsistencyLevel) string {
+ return fmt.Sprintf(`
+provider "azurerm" {
+ features {}
+}
+
+resource "azurerm_resource_group" "test" {
+ name = "acctestRG-cosmos-%d"
+ location = "%s"
+}
+
+data "azuread_service_principal" "cosmosdb" {
+ display_name = "Azure Cosmos DB"
+}
+
+data "azurerm_client_config" "current" {}
+
+resource "azurerm_key_vault" "test" {
+ name = "acctestkeyvault%d"
+ location = azurerm_resource_group.test.location
+ resource_group_name = azurerm_resource_group.test.name
+ tenant_id = data.azurerm_client_config.current.tenant_id
+ sku_name = "standard"
+
+ access_policy {
+ tenant_id = data.azurerm_client_config.current.tenant_id
+ object_id = data.azurerm_client_config.current.object_id
+
+ key_permissions = [
+ "list",
+ "create",
+ "delete",
+ "get",
+ "update",
+ ]
+
+ secret_permissions = [
+ "get",
+ "delete",
+ "set",
+ ]
+ }
+
+ access_policy {
+ tenant_id = data.azurerm_client_config.current.tenant_id
+ object_id = data.azuread_service_principal.cosmosdb.id
+
+ key_permissions = [
+ "list",
+ "create",
+ "delete",
+ "get",
+ "update",
+ "unwrapKey",
+ "wrapKey",
+ ]
+
+ secret_permissions = [
+ "get",
+ "delete",
+ "set",
+ ]
+ }
+}
+
+resource "azurerm_key_vault_key" "test" {
+ name = "examplekey%d"
+ key_vault_uri = azurerm_key_vault.test.id
+ key_type = "RSA"
+ key_size = 2048
+
+ key_opts = [
+ "decrypt",
+ "encrypt",
+ "sign",
+ "unwrapKey",
+ "verify",
+ "wrapKey",
+ ]
+}
+
+resource "azurerm_cosmosdb_account" "test" {
+ name = "acctest-ca-%d"
+ location = azurerm_resource_group.test.location
+ resource_group_name = azurerm_resource_group.test.name
+ offer_type = "Standard"
+ kind = "%s"
+ key_vault_key_uri = "${azurerm_key_vault.test.vault_uri}keys/${azurerm_key_vault_key.test.name}/"
+
+ consistency_policy {
+ consistency_level = "%s"
+ }
+
+ geo_location {
+ location = azurerm_resource_group.test.location
+ failover_priority = 0
+ }
+
+
+}
+`, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger, string(kind), string(consistency))
+}