Finalizes ConfigurationBuilder with indexer

This commit is contained in:
Janus C. H. Knudsen 2025-02-11 19:34:45 +01:00
parent 1f675498a2
commit 6839cd82e2
5 changed files with 43 additions and 11 deletions

View file

@ -7,6 +7,7 @@ using Autofac;
using System.Data;
using Insight.Database;
using Npgsql;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Tests.ConfigurationTests
{
@ -52,7 +53,9 @@ namespace Tests.ConfigurationTests
// Act
var actualFeature = builder.GetSection("Feature").ToObject<Feature>();
#pragma warning disable CS0618 // Type or member is obsolete
var actualFeatureObsoleted = builder.GetSection("Feature").Get<Feature>();
#pragma warning restore CS0618 // Type or member is obsolete
// Assert
actualFeature.Should().BeEquivalentTo(expectedFeature);
actualFeatureObsoleted.Should().BeEquivalentTo(expectedFeature);
@ -74,6 +77,25 @@ namespace Tests.ConfigurationTests
// Assert
actualFeature.Should().BeEquivalentTo(expectedFeature);
}
/// <summary>
/// Testing a stupid indexer for compability with Microsoft ConfigurationBuilder
/// </summary>
[TestMethod]
public void Indexer_ShouldReturnValueAsString()
{
// Arrange
var expected = "SHA256";
var builder = new ConfigurationBuilder()
.AddJsonFile("appconfiguration.dev.json")
.Build();
// Act
var actual = builder["Authentication"];
// Assert
actual.Should().BeEquivalentTo(expected);
}
[TestMethod]
public void Get_ShouldReturnCorrectValueAsInt()
{

View file

@ -35,7 +35,7 @@ namespace Tests
{
CreateContainerBuilder();
Container = ContainerBuilder.Build();
}
@ -69,7 +69,7 @@ namespace Tests
.SingleInstance();
builder.RegisterModule(new Core.ModuleRegistry.DbPostgreSqlModule
builder.RegisterModule(new Database.ModuleRegistry.DbPostgreSqlModule
{
ConnectionString = configuration.GetConnectionString("DefaultConnection")
});
@ -86,8 +86,6 @@ namespace Tests
[TestCleanup]
public void CleanUp()
{
//Serilog.Log.CloseAndFlush();
Trace.Flush();
var telemetryClient = Container.Resolve<TelemetryClient>();
telemetryClient.Flush();

View file

@ -6,6 +6,7 @@
"ApplicationInsights": {
"ConnectionString": "InstrumentationKey=6d2e76ee-5343-4691-a5e3-81add43cb584;IngestionEndpoint=https://northeurope-0.in.applicationinsights.azure.com/"
},
"Authentication": "SHA256",
"Feature": {
"Enabled": true,
"RolloutPercentage": 25,