src/Services/Ordering/Ordering.UnitTests/Application/NewOrderCommandHandlerTest.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents;
namespace UnitTest.Ordering.Application;
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
public class NewOrderRequestHandlerTest
{
private readonly Mock<IOrderRepository> _orderRepositoryMock;
private readonly Mock<IIdentityService> _identityServiceMock;
private readonly Mock<IMediator> _mediator;
private readonly Mock<IOrderingIntegrationEventService> _orderingIntegrationEventService;
public NewOrderRequestHandlerTest()
{
_orderRepositoryMock = new Mock<IOrderRepository>();
_identityServiceMock = new Mock<IIdentityService>();
_orderingIntegrationEventService = new Mock<IOrderingIntegrationEventService>();
_mediator = new Mock<IMediator>();
}
[Fact]
public async Task Handle_return_false_if_order_is_not_persisted()
{
var buyerId = "1234";
var fakeOrderCmd = FakeOrderRequestWithBuyer(new Dictionary<string, object>
{ ["cardExpiration"] = DateTime.Now.AddYears(1) });
_orderRepositoryMock.Setup(orderRepo => orderRepo.GetAsync(It.IsAny<int>()))
.Returns(Task.FromResult<Order>(FakeOrder()));
_orderRepositoryMock.Setup(buyerRepo => buyerRepo.UnitOfWork.SaveChangesAsync(default(CancellationToken)))
.Returns(Task.FromResult(1));
_identityServiceMock.Setup(svc => svc.GetUserIdentity()).Returns(buyerId);
var LoggerMock = new Mock<ILogger<CreateOrderCommandHandler>>();
//Act
var handler = new CreateOrderCommandHandler(_mediator.Object, _orderingIntegrationEventService.Object, _orderRepositoryMock.Object, _identityServiceMock.Object, LoggerMock.Object);
var cltToken = new System.Threading.CancellationToken();
var result = await handler.Handle(fakeOrderCmd, cltToken);
//Assert
Assert.False(result);
}
[Fact]
public void Handle_throws_exception_when_no_buyerId()
{
//Assert
Assert.Throws<ArgumentNullException>(() => new Buyer(string.Empty, string.Empty));
}
private Buyer FakeBuyer()
{
return new Buyer(Guid.NewGuid().ToString(), "1");
}
后面还有 23 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。