mirror of https://github.com/dapr/dotnet-sdk.git
102 lines
3.5 KiB
C#
102 lines
3.5 KiB
C#
using System;
|
|
using System.Text.Json;
|
|
using Dapr.Client;
|
|
using Grpc.Net.Client;
|
|
using Xunit;
|
|
|
|
namespace Dapr.AspNetCore.Test
|
|
{
|
|
public class DaprClientBuilderTest
|
|
{
|
|
[Fact]
|
|
public void DaprClientBuilder_UsesPropertyNameCaseHandlingInsensitiveByDefault()
|
|
{
|
|
DaprClientBuilder builder = new DaprClientBuilder();
|
|
Assert.True(builder.JsonSerializerOptions.PropertyNameCaseInsensitive);
|
|
}
|
|
|
|
[Fact]
|
|
public void DaprClientBuilder_UsesPropertyNameCaseHandlingAsSpecified()
|
|
{
|
|
var builder = new DaprClientBuilder();
|
|
builder.UseJsonSerializationOptions(new JsonSerializerOptions
|
|
{
|
|
PropertyNameCaseInsensitive = false
|
|
});
|
|
Assert.False(builder.JsonSerializerOptions.PropertyNameCaseInsensitive);
|
|
}
|
|
|
|
[Fact]
|
|
public void DaprClientBuilder_UsesThrowOperationCanceledOnCancellation_ByDefault()
|
|
{
|
|
var builder = new DaprClientBuilder();
|
|
var daprClient = builder.Build();
|
|
Assert.True(builder.GrpcChannelOptions.ThrowOperationCanceledOnCancellation);
|
|
}
|
|
|
|
[Fact]
|
|
public void DaprClientBuilder_DoesNotOverrideUserGrpcChannelOptions()
|
|
{
|
|
var httpClient = new TestHttpClient();
|
|
var builder = new DaprClientBuilder();
|
|
var daprClient = builder.UseGrpcChannelOptions(new GrpcChannelOptions { HttpClient = httpClient }).Build();
|
|
Assert.False(builder.GrpcChannelOptions.ThrowOperationCanceledOnCancellation);
|
|
}
|
|
|
|
[Fact]
|
|
public void DaprClientBuilder_ValidatesGrpcEndpointScheme()
|
|
{
|
|
var builder = new DaprClientBuilder();
|
|
builder.UseGrpcEndpoint("ftp://example.com");
|
|
|
|
var ex = Assert.Throws<InvalidOperationException>(() => builder.Build());
|
|
Assert.Equal("The gRPC endpoint must use http or https.", ex.Message);
|
|
}
|
|
|
|
[Fact]
|
|
public void DaprClientBuilder_ValidatesHttpEndpointScheme()
|
|
{
|
|
var builder = new DaprClientBuilder();
|
|
builder.UseHttpEndpoint("ftp://example.com");
|
|
|
|
var ex = Assert.Throws<InvalidOperationException>(() => builder.Build());
|
|
Assert.Equal("The HTTP endpoint must use http or https.", ex.Message);
|
|
}
|
|
|
|
[Fact]
|
|
public void DaprClientBuilder_SetsApiToken()
|
|
{
|
|
var builder = new DaprClientBuilder();
|
|
builder.UseDaprApiToken("test_token");
|
|
builder.Build();
|
|
Assert.Equal("test_token", builder.DaprApiToken);
|
|
}
|
|
|
|
[Fact]
|
|
public void DaprClientBuilder_SetsNullApiToken()
|
|
{
|
|
var builder = new DaprClientBuilder();
|
|
builder.UseDaprApiToken(null);
|
|
builder.Build();
|
|
Assert.Null(builder.DaprApiToken);
|
|
}
|
|
|
|
[Fact]
|
|
public void DaprClientBuilder_ApiTokenSet_SetsApiTokenHeader()
|
|
{
|
|
var builder = new DaprClientBuilder();
|
|
builder.UseDaprApiToken("test_token");
|
|
var entry = DaprClient.GetDaprApiTokenHeader(builder.DaprApiToken);
|
|
Assert.Equal("test_token", entry.Value);
|
|
}
|
|
|
|
[Fact]
|
|
public void DaprClientBuilder_ApiTokenNotSet_EmptyApiTokenHeader()
|
|
{
|
|
var builder = new DaprClientBuilder();
|
|
var entry = DaprClient.GetDaprApiTokenHeader(builder.DaprApiToken);
|
|
Assert.Equal(default, entry);
|
|
}
|
|
}
|
|
}
|