/
afanasevn
/
MaxSystems
Обзор
Документация
Войти
/
afanasevn
/
MaxSystems
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/MaxSystems.IntegrationTests/NotificationHandlerDirectTests.cs
48 строк
2 KB
IBS\NAfanasev
Worker: SMTP notifications
22 июн 2026, 17:39
22 июн 2026, 17:39
f147337
Код
Авторство
О чём код?
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> /// Прямой вызов notification handler Worker (без RabbitMQ) для изоляции journal/handler. /// </summary> [Collection(IntegrationTestCollection.Name)] public sealed class NotificationHandlerDirectTests(IntegrationTestFixture fixture) { /// <summary> /// InvokeAsync notification handler => journal Delivered по WorkId fallback. /// </summary> [Fact] public async Task InvokeHandler_MarksNotificationsJournalDelivered() { await fixture.LoginAsManagerAsync(); var response = await fixture.Client.PatchAsJsonAsync( $"/api/works/{TestSeedIds.Work1}", new { status = WorkStatus.InProgress }); 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.New, WorkStatus.InProgress, TestSeedIds.Spec1)); var log = await IntegrationTestDatabase.WaitForDeliveryLogStatusAsync( fixture.PostgresConnectionString, TestSeedIds.Work1, IntegrationTopology.NotificationsQueue, IntegrationDeliveryStatus.Delivered, TimeSpan.FromSeconds(10)); Assert.Equal(IntegrationDeliveryJournalMessages.NotificationsStubDeliveredSummary, log.PayloadSummary); } }