db620d33df
CodeQL / Analyze (csharp) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
dotnet-build-and-test / dotnet-test-functions (push) Has been cancelled
dotnet-build-and-test / paths-filter (push) Has been cancelled
dotnet-build-and-test / dotnet-build (Debug, windows-latest, net9.0) (push) Has been cancelled
dotnet-build-and-test / dotnet-build (Release, ubuntu-latest, net10.0) (push) Has been cancelled
dotnet-build-and-test / dotnet-build (Release, ubuntu-latest, net8.0) (push) Has been cancelled
dotnet-build-and-test / dotnet-build (Release, windows-latest, net472) (push) Has been cancelled
dotnet-build-and-test / dotnet-test (Release, integration, true, ubuntu-latest, net10.0) (push) Has been cancelled
dotnet-build-and-test / dotnet-test (Release, integration, true, windows-latest, net472) (push) Has been cancelled
dotnet-build-and-test / dotnet-foundry-hosted-it (push) Has been cancelled
dotnet-build-and-test / dotnet-build-and-test-check (push) Has been cancelled
dotnet-build-and-test / Integration Test Report (push) Has been cancelled
35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
// Copyright (c) Microsoft. All rights reserved.
|
|
|
|
using System;
|
|
using Microsoft.Extensions.Configuration;
|
|
|
|
namespace AgentConformance.IntegrationTests.Support;
|
|
|
|
/// <summary>
|
|
/// Helper for loading test configuration settings.
|
|
/// </summary>
|
|
public sealed class TestConfiguration
|
|
{
|
|
private static readonly IConfiguration s_configuration = new ConfigurationBuilder()
|
|
.AddJsonFile(path: "testsettings.development.json", optional: true)
|
|
.AddEnvironmentVariables()
|
|
.AddUserSecrets<TestConfiguration>()
|
|
.Build();
|
|
|
|
/// <summary>
|
|
/// Gets a configuration value by its flat key name.
|
|
/// </summary>
|
|
/// <param name="key">The configuration key.</param>
|
|
/// <returns>The configuration value, or <see langword="null"/> if not found.</returns>
|
|
public static string? GetValue(string key) => s_configuration[key];
|
|
|
|
/// <summary>
|
|
/// Gets a required configuration value by its flat key name.
|
|
/// </summary>
|
|
/// <param name="key">The configuration key.</param>
|
|
/// <returns>The configuration value.</returns>
|
|
/// <exception cref="InvalidOperationException">Thrown if the configuration value is not found.</exception>
|
|
public static string GetRequiredValue(string key) =>
|
|
s_configuration[key] ?? throw new InvalidOperationException($"Configuration key '{key}' is required but was not found.");
|
|
}
|