| File: ApplicationMetadataSourceTests.cs | Web Access |
| Project: src\test\Libraries\Microsoft.Extensions.AmbientMetadata.Application.Tests\Microsoft.Extensions.AmbientMetadata.Application.Tests.csproj (Microsoft.Extensions.AmbientMetadata.Application.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using AutoFixture; using FluentAssertions; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Moq; using Xunit; namespace Microsoft.Extensions.AmbientMetadata.Test; public class ApplicationMetadataSourceTests { private const string TestEnvironmentName = "fancy environment"; private const string TestApplicationName = "fancy application"; private readonly Mock<IHostEnvironment> _hostEnvironment = new(); private readonly Fixture _fixture = new(); public ApplicationMetadataSourceTests() { _hostEnvironment.Setup(h => h.EnvironmentName).Returns(TestEnvironmentName); _hostEnvironment.Setup(h => h.ApplicationName).Returns(TestApplicationName); } [Fact] public void ApplicationMetadataSource_CanConstruct() => new ApplicationMetadataSource(_hostEnvironment.Object, _fixture.Create<string>()).Should().NotBeNull(); [Fact] public void ApplicationMetadataSource_NullHostEnvironment_Throws() { var act = () => new ApplicationMetadataSource(null!, _fixture.Create<string>()); act.Should().Throw<ArgumentNullException>(); } [Theory] [InlineData(null)] [InlineData("")] [InlineData(" ")] [InlineData(" ")] public void ApplicationMetadataSource_InvalidSectionName_Throws(string? sectionName) { var act = () => new ApplicationMetadataSource(_hostEnvironment.Object, sectionName!); act.Should().Throw<ArgumentException>(); } [Fact] public void ApplicationMetadataSource_Build_BuildsProviderCorrectly() { var testSectionName = _fixture.Create<string>(); var sut = new ApplicationMetadataSource(_hostEnvironment.Object, testSectionName); var configurationBuilder = new ConfigurationBuilder(); var provider = sut.Build(configurationBuilder); var result = provider.TryGet($"{testSectionName}:{nameof(ApplicationMetadata.EnvironmentName)}", out var actualEnvironmentName); result.Should().BeTrue(); actualEnvironmentName.Should().Be(TestEnvironmentName); result = provider.TryGet($"{testSectionName}:{nameof(ApplicationMetadata.ApplicationName)}", out var actualApplicationName); result.Should().BeTrue(); actualApplicationName.Should().Be(TestApplicationName); } }