diff --git a/src/Achieve.Aspire.AzureProvisioning/CosmosDb.cs b/src/Achieve.Aspire.AzureProvisioning/CosmosDb.cs
index 67f3f26..1ba78dd 100644
--- a/src/Achieve.Aspire.AzureProvisioning/CosmosDb.cs
+++ b/src/Achieve.Aspire.AzureProvisioning/CosmosDb.cs
@@ -18,6 +18,8 @@ public static class CosmosDbExtensions
///
public static IResourceBuilder AddAzureCosmosDbNoSqlAccount(this IDistributedApplicationBuilder builder, string name, Action configure)
{
+ builder.AddAzureProvisioning();
+
var accountResource = new CosmosDbAccountResource(name);
var options = new CosmosDbAccountOptions(accountResource);
configure(options);
diff --git a/src/Achieve.Aspire.AzureProvisioning/RoleAssignment.cs b/src/Achieve.Aspire.AzureProvisioning/RoleAssignment.cs
index 897a726..34bc81d 100644
--- a/src/Achieve.Aspire.AzureProvisioning/RoleAssignment.cs
+++ b/src/Achieve.Aspire.AzureProvisioning/RoleAssignment.cs
@@ -23,6 +23,8 @@ public static class RoleAssignmentExtensions
{
return default;
}
+
+ builder.AddAzureProvisioning();
var bicepFileOutput = BicepFileOutput.GetAspireFileOutput();
bicepFileOutput.AddParameter(new BicepParameter("resourceName", BicepSupportedType.String, Description: "The target resource."));
diff --git a/tests/Achieve.Aspire.AzureProvisioning.Tests/CosmosDbTests.cs b/tests/Achieve.Aspire.AzureProvisioning.Tests/CosmosDbTests.cs
index 3cadb4f..c10bafb 100644
--- a/tests/Achieve.Aspire.AzureProvisioning.Tests/CosmosDbTests.cs
+++ b/tests/Achieve.Aspire.AzureProvisioning.Tests/CosmosDbTests.cs
@@ -2,6 +2,7 @@
using Achieve.Aspire.AzureProvisioning.Bicep.CosmosDb;
using Achieve.Aspire.AzureProvisioning.Tests.Utils;
using Aspire.Hosting;
+using Aspire.Hosting.Azure;
using Azure.ResourceManager.Models;
using Xunit.Abstractions;
@@ -9,6 +10,14 @@ namespace Achieve.Aspire.AzureProvisioning.Tests;
public class CosmosDbTests(ITestOutputHelper output)
{
+ [Fact]
+ public void AzureProvisionerIsAdded()
+ {
+ using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish);
+ var cosmos = builder.AddAzureCosmosDbNoSqlAccount("cosmos", acc => {});
+ Assert.Contains(builder.Services, m => m.ServiceKey != null && m.ServiceKey as Type == typeof(AzureBicepResource));
+ }
+
[Fact]
public async Task BasicCosmosDbGeneratesCorrectly()
{
diff --git a/tests/Achieve.Aspire.AzureProvisioning.Tests/IdentityTests.cs b/tests/Achieve.Aspire.AzureProvisioning.Tests/IdentityTests.cs
index d2bf663..c867a5a 100644
--- a/tests/Achieve.Aspire.AzureProvisioning.Tests/IdentityTests.cs
+++ b/tests/Achieve.Aspire.AzureProvisioning.Tests/IdentityTests.cs
@@ -1,6 +1,7 @@
using System.Text.Json;
using Achieve.Aspire.AzureProvisioning.Tests.Utils;
using Aspire.Hosting;
+using Aspire.Hosting.Azure;
using Azure.ResourceManager.Models;
using Xunit.Abstractions;
@@ -8,6 +9,14 @@ namespace Achieve.Aspire.AzureProvisioning.Tests;
public class IdentityTests(ITestOutputHelper output)
{
+ [Fact]
+ public void AzureProvisionerIsAdded()
+ {
+ using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish);
+ var cosmos = builder.AddManagedIdentity("testid");
+ Assert.Contains(builder.Services, m => m.ServiceKey != null && m.ServiceKey as Type == typeof(AzureBicepResource));
+ }
+
[Fact]
public async Task ManagedIdentityGetsAddedForDeployment()
{
diff --git a/tests/Achieve.Aspire.AzureProvisioning.Tests/KeyVaultTests.cs b/tests/Achieve.Aspire.AzureProvisioning.Tests/KeyVaultTests.cs
index be15867..8aa976d 100644
--- a/tests/Achieve.Aspire.AzureProvisioning.Tests/KeyVaultTests.cs
+++ b/tests/Achieve.Aspire.AzureProvisioning.Tests/KeyVaultTests.cs
@@ -1,6 +1,7 @@
using System.Text.Json;
using Achieve.Aspire.AzureProvisioning.Tests.Utils;
using Aspire.Hosting;
+using Aspire.Hosting.Azure;
using Azure.ResourceManager.Models;
using Bicep.Core.Diagnostics;
using Bicep.Core.Parsing;
@@ -11,6 +12,14 @@ namespace Achieve.Aspire.AzureProvisioning.Tests;
public class KeyVaultTests(ITestOutputHelper output)
{
+ [Fact]
+ public void AzureProvisionerIsAdded()
+ {
+ using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish);
+ var kv = builder.AddZtAzureKeyVault("kv", _ => { });
+ Assert.Contains(builder.Services, m => m.ServiceKey != null && m.ServiceKey as Type == typeof(AzureBicepResource));
+ }
+
[Fact]
public async Task ZeroTrustKeyVaultCanHaveManagedIdentityAndSecrets()
{
diff --git a/tests/Achieve.Aspire.AzureProvisioning.Tests/RoleAssignmentTests.cs b/tests/Achieve.Aspire.AzureProvisioning.Tests/RoleAssignmentTests.cs
index d225f83..e673463 100644
--- a/tests/Achieve.Aspire.AzureProvisioning.Tests/RoleAssignmentTests.cs
+++ b/tests/Achieve.Aspire.AzureProvisioning.Tests/RoleAssignmentTests.cs
@@ -1,6 +1,7 @@
using System.Text.Json;
using Achieve.Aspire.AzureProvisioning.Tests.Utils;
using Aspire.Hosting;
+using Aspire.Hosting.Azure;
using Azure.ResourceManager.Models;
using Xunit.Abstractions;
@@ -8,6 +9,16 @@ namespace Achieve.Aspire.AzureProvisioning.Tests;
public class RoleAssignmentTests(ITestOutputHelper output)
{
+ [Fact]
+ public void AzureProvisionerIsAdded()
+ {
+ using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish);
+ var id = builder.AddManagedIdentity("testid");
+ var kv = builder.AddZtAzureKeyVault("kv", o => { });
+ var ra = builder.AddAzureRoleAssignment(kv, id, KeyVaultRoles.CertificateUser);
+ Assert.Contains(builder.Services, m => m.ServiceKey != null && m.ServiceKey as Type == typeof(AzureBicepResource));
+ }
+
[Fact]
public async Task RoleAssignmentGeneratesCorrectly()
{