| File: Logging\Internal\LogRecordExtensions.cs | Web Access |
| Project: src\test\Libraries\Microsoft.Extensions.Http.Diagnostics.Tests\Microsoft.Extensions.Http.Diagnostics.Tests.csproj (Microsoft.Extensions.Http.Diagnostics.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 System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Http.Logging.Internal; using Microsoft.Extensions.Logging.Testing; using Xunit; namespace Microsoft.Extensions.Http.Logging.Test.Internal; internal static class LogRecordExtensions { public static Dictionary<string, string?> GetStructuredState(this FakeLogRecord logRecord) { Assert.NotNull(logRecord.StructuredState); Assert.NotEmpty(logRecord.StructuredState); return logRecord.StructuredState.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); } public static string GetEnrichmentProperty(this LogRecord logRecord, string name) { return logRecord.EnrichmentTags!.FirstOrDefault(kvp => kvp.Key == name).Value!.ToString()!; } public static void Contains(this IDictionary<string, string?> logRecordState, string key, string expectedValue) { var actualValue = Assert.Contains(key, logRecordState); Assert.Equal(expectedValue, actualValue); } public static void Contains(this IDictionary<string, string?> logRecordState, string key, Action<string?> assertion) { var actualValue = Assert.Contains(key, logRecordState); assertion(actualValue); } public static void NotContains(this IDictionary<string, string?> logRecord, string key) { Assert.DoesNotContain(key, logRecord); } }