Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## v1.9.0 (unreleased)

- Introduce default version setting to DurableTaskClient and expose to orchestrator ([#393](https://github.com/microsoft/durabletask-dotnet/pull/393))
- Add support for local credential types in DTS libraries ([#396](https://github.com/microsoft/durabletask-dotnet/pull/396))

## v1.8.1

Expand Down
7 changes: 7 additions & 0 deletions src/Client/AzureManaged/DurableTaskSchedulerClientOptions.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.

using System.ComponentModel.DataAnnotations;
using Azure.Core;
using Azure.Identity;
Expand Down Expand Up @@ -152,6 +153,12 @@ this.Credential is not null
return new AzureCliCredential();
case "azurepowershell":
return new AzurePowerShellCredential();
case "visualstudio":
return new VisualStudioCredential();
case "visualstudiocode":
return new VisualStudioCodeCredential();
case "interactivebrowser":
return new InteractiveBrowserCredential();
case "none":
return null;
default:
Expand Down
7 changes: 7 additions & 0 deletions src/Worker/AzureManaged/DurableTaskSchedulerWorkerOptions.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.

using System.ComponentModel.DataAnnotations;
using Azure.Core;
using Azure.Identity;
Expand Down Expand Up @@ -159,6 +160,12 @@ this.Credential is not null
return new AzureCliCredential();
case "azurepowershell":
return new AzurePowerShellCredential();
case "visualstudio":
return new VisualStudioCredential();
case "visualstudiocode":
return new VisualStudioCodeCredential();
case "interactivebrowser":
return new InteractiveBrowserCredential();
case "none":
return null;
default:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,22 +60,95 @@ public void FromConnectionString_WithWorkloadIdentity_ShouldCreateValidInstance(
options.Credential.Should().BeOfType<WorkloadIdentityCredential>();
}

[Theory]
[InlineData("Environment")]
[InlineData("AzureCLI")]
[InlineData("AzurePowerShell")]
public void FromConnectionString_WithValidAuthTypes_ShouldCreateValidInstance(string authType)

[Fact]
public void FromConnectionString_WithEnvironmentCredential_ShouldCreateValidInstance()
{
// Arrange
string connectionString = $"Endpoint={ValidEndpoint};Authentication=Environment;TaskHub={ValidTaskHub}";

// Act
DurableTaskSchedulerClientOptions options = DurableTaskSchedulerClientOptions.FromConnectionString(connectionString);

// Assert
options.EndpointAddress.Should().Be(ValidEndpoint);
options.TaskHubName.Should().Be(ValidTaskHub);
options.Credential.Should().BeOfType<EnvironmentCredential>();
}

[Fact]
public void FromConnectionString_WithAzureCliCredential_ShouldCreateValidInstance()
{
// Arrange
string connectionString = $"Endpoint={ValidEndpoint};Authentication=AzureCLI;TaskHub={ValidTaskHub}";

// Act
DurableTaskSchedulerClientOptions options = DurableTaskSchedulerClientOptions.FromConnectionString(connectionString);

// Assert
options.EndpointAddress.Should().Be(ValidEndpoint);
options.TaskHubName.Should().Be(ValidTaskHub);
options.Credential.Should().BeOfType<AzureCliCredential>();
}

[Fact]
public void FromConnectionString_WithAzurePowerShellCredential_ShouldCreateValidInstance()
{
// Arrange
string connectionString = $"Endpoint={ValidEndpoint};Authentication=AzurePowerShell;TaskHub={ValidTaskHub}";

// Act
DurableTaskSchedulerClientOptions options = DurableTaskSchedulerClientOptions.FromConnectionString(connectionString);

// Assert
options.EndpointAddress.Should().Be(ValidEndpoint);
options.TaskHubName.Should().Be(ValidTaskHub);
options.Credential.Should().BeOfType<AzurePowerShellCredential>();
}

[Fact]
public void FromConnectionString_WithVisualStudioCredential_ShouldCreateValidInstance()
{
// Arrange
string connectionString = $"Endpoint={ValidEndpoint};Authentication=VisualStudio;TaskHub={ValidTaskHub}";

// Act
DurableTaskSchedulerClientOptions options = DurableTaskSchedulerClientOptions.FromConnectionString(connectionString);

// Assert
options.EndpointAddress.Should().Be(ValidEndpoint);
options.TaskHubName.Should().Be(ValidTaskHub);
options.Credential.Should().BeOfType<VisualStudioCredential>();
}

[Fact]
public void FromConnectionString_WithVisualStudioCodeCredential_ShouldCreateValidInstance()
{
// Arrange
string connectionString = $"Endpoint={ValidEndpoint};Authentication=VisualStudioCode;TaskHub={ValidTaskHub}";

// Act
DurableTaskSchedulerClientOptions options = DurableTaskSchedulerClientOptions.FromConnectionString(connectionString);

// Assert
options.EndpointAddress.Should().Be(ValidEndpoint);
options.TaskHubName.Should().Be(ValidTaskHub);
options.Credential.Should().BeOfType<VisualStudioCodeCredential>();
}

[Fact]
public void FromConnectionString_WithInteractiveCredential_ShouldCreateValidInstance()
{
// Arrange
string connectionString = $"Endpoint={ValidEndpoint};Authentication={authType};TaskHub={ValidTaskHub}";
string connectionString = $"Endpoint={ValidEndpoint};Authentication=InteractiveBrowser;TaskHub={ValidTaskHub}";

// Act
DurableTaskSchedulerClientOptions options = DurableTaskSchedulerClientOptions.FromConnectionString(connectionString);

// Assert
options.EndpointAddress.Should().Be(ValidEndpoint);
options.TaskHubName.Should().Be(ValidTaskHub);
options.Credential.Should().NotBeNull();
options.Credential.Should().BeOfType<InteractiveBrowserCredential>();
}

[Fact]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,22 +60,94 @@ public void FromConnectionString_WithWorkloadIdentity_ShouldCreateValidInstance(
options.Credential.Should().BeOfType<WorkloadIdentityCredential>();
}

[Theory]
[InlineData("Environment")]
[InlineData("AzureCLI")]
[InlineData("AzurePowerShell")]
public void FromConnectionString_WithValidAuthTypes_ShouldCreateValidInstance(string authType)
[Fact]
public void FromConnectionString_WithEnvironmentCredential_ShouldCreateValidInstance()
{
// Arrange
string connectionString = $"Endpoint={ValidEndpoint};Authentication=Environment;TaskHub={ValidTaskHub}";

// Act
DurableTaskSchedulerWorkerOptions options = DurableTaskSchedulerWorkerOptions.FromConnectionString(connectionString);

// Assert
options.EndpointAddress.Should().Be(ValidEndpoint);
options.TaskHubName.Should().Be(ValidTaskHub);
options.Credential.Should().BeOfType<EnvironmentCredential>();
}

[Fact]
public void FromConnectionString_WithAzureCliCredential_ShouldCreateValidInstance()
{
// Arrange
string connectionString = $"Endpoint={ValidEndpoint};Authentication=AzureCLI;TaskHub={ValidTaskHub}";

// Act
DurableTaskSchedulerWorkerOptions options = DurableTaskSchedulerWorkerOptions.FromConnectionString(connectionString);

// Assert
options.EndpointAddress.Should().Be(ValidEndpoint);
options.TaskHubName.Should().Be(ValidTaskHub);
options.Credential.Should().BeOfType<AzureCliCredential>();
}

[Fact]
public void FromConnectionString_WithAzurePowerShellCredential_ShouldCreateValidInstance()
{
// Arrange
string connectionString = $"Endpoint={ValidEndpoint};Authentication=AzurePowerShell;TaskHub={ValidTaskHub}";

// Act
DurableTaskSchedulerWorkerOptions options = DurableTaskSchedulerWorkerOptions.FromConnectionString(connectionString);

// Assert
options.EndpointAddress.Should().Be(ValidEndpoint);
options.TaskHubName.Should().Be(ValidTaskHub);
options.Credential.Should().BeOfType<AzurePowerShellCredential>();
}

[Fact]
public void FromConnectionString_WithVisualStudioCredential_ShouldCreateValidInstance()
{
// Arrange
string connectionString = $"Endpoint={ValidEndpoint};Authentication=VisualStudio;TaskHub={ValidTaskHub}";

// Act
DurableTaskSchedulerWorkerOptions options = DurableTaskSchedulerWorkerOptions.FromConnectionString(connectionString);

// Assert
options.EndpointAddress.Should().Be(ValidEndpoint);
options.TaskHubName.Should().Be(ValidTaskHub);
options.Credential.Should().BeOfType<VisualStudioCredential>();
}

[Fact]
public void FromConnectionString_WithVisualStudioCodeCredential_ShouldCreateValidInstance()
{
// Arrange
string connectionString = $"Endpoint={ValidEndpoint};Authentication=VisualStudioCode;TaskHub={ValidTaskHub}";

// Act
DurableTaskSchedulerWorkerOptions options = DurableTaskSchedulerWorkerOptions.FromConnectionString(connectionString);

// Assert
options.EndpointAddress.Should().Be(ValidEndpoint);
options.TaskHubName.Should().Be(ValidTaskHub);
options.Credential.Should().BeOfType<VisualStudioCodeCredential>();
}

[Fact]
public void FromConnectionString_WithInteractiveCredential_ShouldCreateValidInstance()
{
// Arrange
string connectionString = $"Endpoint={ValidEndpoint};Authentication={authType};TaskHub={ValidTaskHub}";
string connectionString = $"Endpoint={ValidEndpoint};Authentication=InteractiveBrowser;TaskHub={ValidTaskHub}";

// Act
DurableTaskSchedulerWorkerOptions options = DurableTaskSchedulerWorkerOptions.FromConnectionString(connectionString);

// Assert
options.EndpointAddress.Should().Be(ValidEndpoint);
options.TaskHubName.Should().Be(ValidTaskHub);
options.Credential.Should().NotBeNull();
options.Credential.Should().BeOfType<InteractiveBrowserCredential>();
}

[Fact]
Expand Down
Loading