/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/MassTransit.TestFramework/FutureTestFixture.cs
78 строк
2 KB
Chris Patterson
Package updates
10 июн 2025, 18:00
10 июн 2025, 18:00
8a29f86
Код
Авторство
О чём код?
namespace MassTransit.TestFramework { using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using NUnit.Framework; using Testing; public abstract class FutureTestFixture { readonly IFutureTestFixtureConfigurator _testFixtureConfigurator; protected ServiceProvider Provider; protected ITestHarness TestHarness; protected FutureTestFixture(IFutureTestFixtureConfigurator testFixtureConfigurator) { _testFixtureConfigurator = testFixtureConfigurator; } [OneTimeSetUp] public async Task Setup() { var collection = new ServiceCollection() .AddMassTransitTestHarness(cfg => { _testFixtureConfigurator.ConfigureFutureSagaRepository(cfg); cfg.SetKebabCaseEndpointNameFormatter(); ConfigureMassTransit(cfg); }); _testFixtureConfigurator.ConfigureServices(collection); ConfigureServices(collection); Provider = collection.BuildServiceProvider(true); ConfigureLogging(); await _testFixtureConfigurator.OneTimeSetup(Provider); TestHarness = Provider.GetTestHarness(); await TestHarness.Start(); } protected virtual void ConfigureMassTransit(IBusRegistrationConfigurator configurator) { } protected virtual void ConfigureServices(IServiceCollection collection) { } [OneTimeTearDown] public async Task Teardown() { try { await _testFixtureConfigurator.OneTimeTearDown(Provider); } finally { await Provider.DisposeAsync(); } } void ConfigureLogging() { var loggerFactory = Provider.GetRequiredService<ILoggerFactory>(); LogContext.ConfigureCurrentLogContext(loggerFactory); } } }