src/Services/Basket/Basket.UnitTests/Application/CartControllerTest.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace UnitTest.Basket.Application;

public class CartControllerTest
{
    private readonly Mock<ICatalogService> _catalogServiceMock;
    private readonly Mock<IBasketService> _basketServiceMock;
    private readonly Mock<IIdentityParser<ApplicationUser>> _identityParserMock;
    private readonly Mock<HttpContext> _contextMock;

    public CartControllerTest()
    {
        _catalogServiceMock = new Mock<ICatalogService>();
        _basketServiceMock = new Mock<IBasketService>();
        _identityParserMock = new Mock<IIdentityParser<ApplicationUser>>();
        _contextMock = new Mock<HttpContext>();
    }

    [Fact]
    public async Task Post_cart_success()
    {
        //Arrange
        var fakeBuyerId = "1";
        var action = string.Empty;
        var fakeBasket = GetFakeBasket(fakeBuyerId);
        var fakeQuantities = new Dictionary<string, int>()
        {
            ["fakeProdA"] = 1,
            ["fakeProdB"] = 2
        };

        _basketServiceMock.Setup(x => x.SetQuantities(It.IsAny<ApplicationUser>(), It.IsAny<Dictionary<string, int>>()))
            .Returns(Task.FromResult(fakeBasket));

        _basketServiceMock.Setup(x => x.UpdateBasket(It.IsAny<BasketModel>()))
            .Returns(Task.FromResult(fakeBasket));

        //Act
        var cartController = new CartController(_basketServiceMock.Object, _catalogServiceMock.Object, _identityParserMock.Object);
        cartController.ControllerContext.HttpContext = _contextMock.Object;
        var actionResult = await cartController.Index(fakeQuantities, action);

        //Assert
        var viewResult = Assert.IsType<ViewResult>(actionResult);
    }

    [Fact]
    public async Task Post_cart_checkout_success()
    {
        //Arrange
        var fakeBuyerId = "1";
        var action = "[ Checkout ]";
        var fakeBasket = GetFakeBasket(fakeBuyerId);
        var fakeQuantities = new Dictionary<string, int>()
        {
            ["fakeProdA"] = 1,
            ["fakeProdB"] = 2
        };

        _basketServiceMock.Setup(x => x.SetQuantities(It.IsAny<ApplicationUser>(), It.IsAny<Dictionary<string, int>>()))
            .Returns(Task.FromResult(fakeBasket));
后面还有 57 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

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