using BuildFlow.Host.Endpoints.Platform.Auth; using BuildFlow.Platform.Application.Auth.Commands; using FastEndpoints; using FluentAssertions; using MediatR; using NSubstitute; using Xunit; namespace BuildFlow.Platform.Tests.Auth; /// /// 修改密码 HTTP 适配器测试,确保 Endpoint 只转发应用层命令。 /// public class ChangePasswordEndpointTests { [Fact] public async Task EndpointSendsCommandAndReturnsOk() { var mediator = Substitute.For(); mediator.Send(Arg.Any(), Arg.Any()) .Returns(Unit.Value); var endpoint = Factory.Create(mediator); var request = new ChangePasswordRequest { OldPassword = "OldPassword1", NewPassword = "NewPassword2", }; await endpoint.HandleAsync(request, CancellationToken.None); await mediator.Received(1).Send( Arg.Is(command => command.OldPassword == request.OldPassword && command.NewPassword == request.NewPassword), Arg.Any()); endpoint.HttpContext.Response.StatusCode.Should().Be(200); } }