Skip to content

Commit

Permalink
Ensure Azure Provisioner is added as part of the methods so user does…
Browse files Browse the repository at this point in the history
…n't have to
  • Loading branch information
rudiv committed May 12, 2024
1 parent dcf7b79 commit 765de5d
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/Achieve.Aspire.AzureProvisioning/CosmosDb.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ public static class CosmosDbExtensions
/// <returns></returns>
public static IResourceBuilder<AzureCosmosDbResource> AddAzureCosmosDbNoSqlAccount(this IDistributedApplicationBuilder builder, string name, Action<CosmosDbAccountOptions> configure)
{
builder.AddAzureProvisioning();

var accountResource = new CosmosDbAccountResource(name);
var options = new CosmosDbAccountOptions(accountResource);
configure(options);
Expand Down
2 changes: 2 additions & 0 deletions src/Achieve.Aspire.AzureProvisioning/RoleAssignment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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."));
Expand Down
9 changes: 9 additions & 0 deletions tests/Achieve.Aspire.AzureProvisioning.Tests/CosmosDbTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,22 @@
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;

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()
{
Expand Down
9 changes: 9 additions & 0 deletions tests/Achieve.Aspire.AzureProvisioning.Tests/IdentityTests.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,22 @@
using System.Text.Json;
using Achieve.Aspire.AzureProvisioning.Tests.Utils;
using Aspire.Hosting;
using Aspire.Hosting.Azure;
using Azure.ResourceManager.Models;
using Xunit.Abstractions;

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()
{
Expand Down
9 changes: 9 additions & 0 deletions tests/Achieve.Aspire.AzureProvisioning.Tests/KeyVaultTests.cs
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,24 @@
using System.Text.Json;
using Achieve.Aspire.AzureProvisioning.Tests.Utils;
using Aspire.Hosting;
using Aspire.Hosting.Azure;
using Azure.ResourceManager.Models;
using Xunit.Abstractions;

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()
{
Expand Down

0 comments on commit 765de5d

Please sign in to comment.