/
githubmirror
/
aspnetcore
Обзор
Документация
Войти
/
githubmirror
/
aspnetcore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/SignalR/server/StackExchangeRedis/test/RedisServerFixture.cs
73 строки
2 KB
William Godbe
Rename Microsoft.Aspnetcore.Testing to Microsoft.AspNetCore.InternalTesting (#51713)
02 ноя 2023, 03:15
Не верифицирован
02 ноя 2023, 03:15
fc8deca
Код
Авторство
О чём код?
// 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.Threading.Tasks; using Microsoft.AspNetCore.SignalR.Tests; using Microsoft.AspNetCore.InternalTesting; using Microsoft.Extensions.Logging; using Xunit; namespace Microsoft.AspNetCore.SignalR.StackExchangeRedis.Tests; public class RedisServerFixture<TStartup> : IAsyncLifetime where TStartup : class { public InProcessTestServer<TStartup> FirstServer { get; private set; } public InProcessTestServer<TStartup> SecondServer { get; private set; } private readonly ILogger _logger; private readonly ILoggerFactory _loggerFactory; private readonly IDisposable _logToken; public RedisServerFixture() { // Docker is not available on the machine, tests using this fixture // should be using SkipIfDockerNotPresentAttribute and will be skipped. if (Docker.Default == null) { return; } var testLog = AssemblyTestLog.ForAssembly(typeof(RedisServerFixture<TStartup>).Assembly); _logToken = testLog.StartTestLog(null, $"{nameof(RedisServerFixture<TStartup>)}_{typeof(TStartup).Name}", out _loggerFactory, LogLevel.Trace, "RedisServerFixture"); _logger = _loggerFactory.CreateLogger<RedisServerFixture<TStartup>>(); Docker.Default.Start(_logger); } public async Task DisposeAsync() { if (Docker.Default != null) { await FirstServer.DisposeAsync(); await SecondServer.DisposeAsync(); Docker.Default.Stop(_logger); _logToken.Dispose(); } } public async Task InitializeAsync() { if (Docker.Default == null) { return; } FirstServer = await StartServer(); SecondServer = await StartServer(); } private async Task<InProcessTestServer<TStartup>> StartServer() { try { return await InProcessTestServer<TStartup>.StartServer(_loggerFactory); } catch (Exception ex) { _logger.LogError(ex, "Server failed to start."); throw; } } }