| File: tests\Shared\ConsoleLogging\ConsoleLoggingTestHelpers.cs | Web Access |
| Project: src\tests\Aspire.Hosting.Tests\Aspire.Hosting.Tests.csproj (Aspire.Hosting.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace Aspire.Hosting.Tests.Utils; internal static class ConsoleLoggingTestHelpers { public static Task<IReadOnlyList<LogLine>> WatchForLogsAsync(ResourceLoggerService service, int targetLogCount, IResource resource) { var watchEnumerable = service.WatchAsync(resource); return WatchForLogsAsync(watchEnumerable, targetLogCount); } public static Task<IReadOnlyList<LogLine>> WatchForLogsAsync(IAsyncEnumerable<IReadOnlyList<LogLine>> watchEnumerable, int targetLogCount) { return Task.Run(async () => { var logs = new List<LogLine>(); await foreach (var log in watchEnumerable) { logs.AddRange(log); if (logs.Count >= targetLogCount) { break; } } return (IReadOnlyList<LogLine>)logs; }); } public static Task<IReadOnlyList<LogLine>> WatchForLogsAsync(IAsyncEnumerator<IReadOnlyList<LogLine>> watchEnumerator, int targetLogCount) { return Task.Run(async () => { var logs = new List<LogLine>(); while (await watchEnumerator.MoveNextAsync()) { logs.AddRange(watchEnumerator.Current); if (logs.Count >= targetLogCount) { break; } } return (IReadOnlyList<LogLine>)logs; }); } public static ResourceLoggerService GetResourceLoggerService() { return new ResourceLoggerService { TimeProvider = new TestTimeProvider() }; } private sealed class TestTimeProvider : TimeProvider { public static TestTimeProvider Instance = new TestTimeProvider(); public override DateTimeOffset GetUtcNow() { return new DateTimeOffset(2000, 12, 29, 20, 59, 59, TimeSpan.Zero); } } }