aspnetcore/src/Logging.AzureAppServices/test/ConfigureOptionsTests.cs

72 lines
2.7 KiB
C#

// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Collections.Generic;
using System.IO;
using Microsoft.Extensions.Configuration;
using Moq;
using Xunit;
namespace Microsoft.Extensions.Logging.AzureAppServices.Test
{
public class ConfigureOptionsTests
{
[Theory]
[InlineData(true)]
[InlineData(false)]
[InlineData(null)]
public void InitializesIsEnabled(bool? enabled)
{
var configuration = new ConfigurationBuilder().AddInMemoryCollection(new[]
{
new KeyValuePair<string, string>("IsEnabledKey", Convert.ToString(enabled))
}).Build();
var options = new BatchingLoggerOptions();
new BatchLoggerConfigureOptions(configuration, "IsEnabledKey").Configure(options);
Assert.Equal(enabled ?? false, options.IsEnabled);
}
[Fact]
public void InitializesLogDirectory()
{
var configuration = new ConfigurationBuilder().AddInMemoryCollection(new[]
{
new KeyValuePair<string, string>("APPSETTING_DIAGNOSTICS_AZUREBLOBCONTAINERSASURL", "http://container/url")
}).Build();
var contextMock = new Mock<IWebAppContext>();
contextMock.SetupGet(c => c.HomeFolder).Returns("Home");
var options = new AzureFileLoggerOptions();
new FileLoggerConfigureOptions(configuration, contextMock.Object).Configure(options);
Assert.Equal(Path.Combine("Home", "LogFiles", "Application"), options.LogDirectory);
}
[Fact]
public void InitializesBlobUriSiteInstanceAndName()
{
var configuration = new ConfigurationBuilder().AddInMemoryCollection(new []
{
new KeyValuePair<string, string>("APPSETTING_DIAGNOSTICS_AZUREBLOBCONTAINERSASURL", "http://container/url")
}).Build();
var contextMock = new Mock<IWebAppContext>();
contextMock.SetupGet(c => c.HomeFolder).Returns("Home");
contextMock.SetupGet(c => c.SiteInstanceId).Returns("InstanceId");
contextMock.SetupGet(c => c.SiteName).Returns("Name");
var options = new AzureBlobLoggerOptions();
new BlobLoggerConfigureOptions(configuration, contextMock.Object).Configure(options);
Assert.Equal("http://container/url", options.ContainerUrl);
Assert.Equal("InstanceId", options.ApplicationInstanceId);
Assert.Equal("Name", options.ApplicationName);
}
}
}