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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。