/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/MassTransit.TestFramework/InMemoryTestFixture.cs
111 строк
3 KB
Chris Patterson
Package updates
10 июн 2025, 18:00
10 июн 2025, 18:00
8a29f86
Код
Авторство
О чём код?
namespace MassTransit.TestFramework { using System; using System.Threading.Tasks; using NUnit.Framework; using NUnit.Framework.Internal; using Testing; public abstract class InMemoryTestFixture : BusTestFixture { TestExecutionContext _fixtureContext; protected InMemoryTestFixture() : this(new InMemoryTestHarness()) { } protected InMemoryTestFixture(InMemoryTestHarness harness) : base(harness) { InMemoryTestHarness = harness; InMemoryTestHarness.OnConfigureInMemoryBus += ConfigureInMemoryBus; InMemoryTestHarness.OnConfigureInMemoryReceiveEndpoint += ConfigureInMemoryReceiveEndpoint; } protected InMemoryTestHarness InMemoryTestHarness { get; } protected string InputQueueName => InMemoryTestHarness.InputQueueName; protected Uri BaseAddress => InMemoryTestHarness.BaseAddress; /// <summary> /// The sending endpoint for the InputQueue /// </summary> protected ISendEndpoint InputQueueSendEndpoint => InMemoryTestHarness.InputQueueSendEndpoint; /// <summary> /// The sending endpoint for the Bus /// </summary> protected ISendEndpoint BusSendEndpoint => InMemoryTestHarness.BusSendEndpoint; protected Uri BusAddress => InMemoryTestHarness.BusAddress; protected Uri InputQueueAddress => InMemoryTestHarness.InputQueueAddress; [SetUp] public Task SetupInMemoryTest() { return Task.CompletedTask; } [TearDown] public Task TearDownInMemoryTest() { return Task.CompletedTask; } protected IRequestClient<TRequest> CreateRequestClient<TRequest>() where TRequest : class { return InMemoryTestHarness.CreateRequestClient<TRequest>(); } protected IRequestClient<TRequest> CreateRequestClient<TRequest>(Uri destinationAddress) where TRequest : class { return InMemoryTestHarness.CreateRequestClient<TRequest>(destinationAddress); } protected Task<IRequestClient<TRequest>> ConnectRequestClient<TRequest>() where TRequest : class { return InMemoryTestHarness.ConnectRequestClient<TRequest>(); } [OneTimeSetUp] public Task SetupInMemoryTestFixture() { _fixtureContext = TestExecutionContext.CurrentContext; LoggerFactory.Current = _fixtureContext; return InMemoryTestHarness.Start(); } protected Task<ISendEndpoint> GetSendEndpoint(Uri address) { return InMemoryTestHarness.GetSendEndpoint(address); } [OneTimeTearDown] public async Task TearDownInMemoryTestFixture() { LoggerFactory.Current = _fixtureContext; await InMemoryTestHarness.Stop().ConfigureAwait(false); InMemoryTestHarness.Dispose(); } protected virtual void ConfigureInMemoryBus(IInMemoryBusFactoryConfigurator configurator) { } protected virtual void ConfigureInMemoryReceiveEndpoint(IInMemoryReceiveEndpointConfigurator configurator) { } } }