File: GrpcJsonTranscodingServiceExtensionsTests.cs
Web Access
Project: src\src\Grpc\JsonTranscoding\test\Microsoft.AspNetCore.Grpc.JsonTranscoding.Tests\Microsoft.AspNetCore.Grpc.JsonTranscoding.Tests.csproj (Microsoft.AspNetCore.Grpc.JsonTranscoding.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
 
namespace Microsoft.AspNetCore.Grpc.JsonTranscoding.Tests;
 
public class GrpcJsonTranscodingServiceExtensionsTests
{
    [Fact]
    public void AddGrpcJsonTranscoding_DefaultOptions_PopulatedProperties()
    {
        // Arrange
        var services = new ServiceCollection();
 
        // Act
        services.AddGrpc().AddJsonTranscoding();
 
        // Assert
        var serviceProvider = services.BuildServiceProvider();
        var options1 = serviceProvider.GetRequiredService<IOptions<GrpcJsonTranscodingOptions>>().Value;
 
        Assert.NotNull(options1.JsonSettings);
 
        var options2 = serviceProvider.GetRequiredService<IOptions<GrpcJsonTranscodingOptions>>().Value;
 
        Assert.Equal(options1, options2);
    }
 
    [Fact]
    public void AddGrpcJsonTranscoding_OverrideOptions_OptionsApplied()
    {
        // Arrange
        var settings = new GrpcJsonSettings();
 
        var services = new ServiceCollection();
 
        // Act
        services.AddGrpc().AddJsonTranscoding(o =>
        {
            o.JsonSettings = settings;
        });
 
        // Assert
        var serviceProvider = services.BuildServiceProvider();
        var options = serviceProvider.GetRequiredService<IOptions<GrpcJsonTranscodingOptions>>().Value;
 
        Assert.Equal(settings, options.JsonSettings);
    }
}