using System.Threading.Tasks; using MediatR; using Microsoft.Extensions.DependencyInjection; using NUnit.Framework; using ReC.Application.Common.Procedures.DeleteProcedure; using ReC.Application.Common.Procedures.InsertProcedure; using ReC.Application.Common.Procedures.UpdateProcedure; using ReC.Application.Results.Commands; using ReC.Tests.Application; namespace ReC.Tests.Application.Results; [TestFixture] public class ResultProcedureTests : RecApplicationTestBase { private (ISender Sender, IServiceScope Scope) CreateScopedSender() { var scope = ServiceProvider.CreateScope(); var sender = scope.ServiceProvider.GetRequiredService(); return (sender, scope); } [Test] public async Task InsertResultProcedure_runs_via_mediator() { var procedure = new InsertResultProcedure { ActionId = 1, StatusId = 200, Header = "h", Body = "b" }; var objectProc = procedure.ToObjectProcedure("ReC.Tests"); var (sender, scope) = CreateScopedSender(); using var _ = scope; var result = await sender.Send(objectProc); Assert.That(result, Is.GreaterThan(0)); } [Test] public async Task UpdateResultProcedure_runs_via_mediator() { var procedure = new UpdateResultProcedure { ActionId = 2, StatusId = 500, Header = "h2", Body = "b2" }; var objectProc = procedure.ToObjectProcedure(55, "ReC.Tests"); var (sender, scope) = CreateScopedSender(); using var _ = scope; var result = await sender.Send(objectProc); Assert.That(result, Is.Not.EqualTo(default(int))); } [Test] public async Task DeleteResultProcedure_runs_via_mediator() { var procedure = new DeleteResultProcedure { Start = 11, End = 12, Force = false }; var objectProc = procedure.ToObjectProcedure(); var (sender, scope) = CreateScopedSender(); using var _ = scope; var result = await sender.Send(objectProc); Assert.That(result, Is.Not.EqualTo(default(int))); } }