/
afanasevn
/
MaxSystems
Обзор
Документация
Войти
/
afanasevn
/
MaxSystems
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/MaxSystems.IntegrationTests/ServiceDeskHandlerDirectTests.cs
48 строк
2 KB
IBS\NAfanasev
Integration Event Bus
22 июн 2026, 17:02
22 июн 2026, 17:02
05d97a7
Код
Авторство
О чём код?
using System.Net.Http.Json; using MaxSystems.Application.Integration; using MaxSystems.Domain.Enums; using MaxSystems.IntegrationTests.Infrastructure; using Microsoft.Extensions.DependencyInjection; using Wolverine; namespace MaxSystems.IntegrationTests; /// <summary> /// Прямой вызов handler Worker (без RabbitMQ) для изоляции проблем journal/handler. /// </summary> [Collection(IntegrationTestCollection.Name)] public sealed class ServiceDeskHandlerDirectTests(IntegrationTestFixture fixture) { /// <summary> /// InvokeAsync handler => journal Delivered по WorkId fallback. /// </summary> [Fact] public async Task InvokeHandler_MarksServiceDeskJournalDelivered() { await fixture.LoginAsManagerAsync(); var response = await fixture.Client.PatchAsJsonAsync( $"/api/works/{TestSeedIds.Work1}", new { status = WorkStatus.OnReview }); response.EnsureSuccessStatusCode(); var bus = fixture.WorkerHost.Host.Services.GetRequiredService<IMessageBus>(); await bus.InvokeAsync( new MaxSystems.Application.Integration.Events.WorkStatusChangedIntegrationEvent( TestSeedIds.Work1, "WRK-2026-00001", WorkStatus.InProgress, WorkStatus.OnReview, null)); var log = await IntegrationTestDatabase.WaitForDeliveryLogStatusAsync( fixture.PostgresConnectionString, TestSeedIds.Work1, IntegrationTopology.ServiceDeskQueue, IntegrationDeliveryStatus.Delivered, TimeSpan.FromSeconds(10)); Assert.Equal(IntegrationDeliveryJournalMessages.ServiceDeskDeliveredSummary, log.PayloadSummary); } }