public void AddNewProductToEmptyCart_Success() { // Arrange var mapperMock = new Mock <IMapper>(); mapperMock.Setup(m => m.Map <CartDTO>(It.IsAny <Cart>())).Returns((Cart c) => new CartDTO() { Total = c.Total, CartItems = c.CartItems.Select(z => new CartItemDTO()).ToList() }); var rulesMock = new Mock <IRulesEngine>(); rulesMock.Setup(m => m.CalculateCartPrices(It.IsAny <List <CartItem> >(), It.IsAny <List <ProductItem> >())).Returns((List <CartItem> c, List <ProductItem> products) => new Cart() { CartItems = c, Total = 555 }); var mockDb = new Mock <IProductRepository>(); List <ProductItem> result = CreateProductItemsList(); mockDb.Setup(x => x.GetProducts()).Returns(result.AsQueryable()); IProductService service = new ProductsService(mockDb.Object, rulesMock.Object, mapperMock.Object); //Act CartDTO cart = service.AddProductToCart("CRM", new List <CartItemDTO>()).Result; // Assert Assert.AreEqual(1, cart.CartItems.Count()); }
public async Task CartItemsNotProvided_Fail() { IProductService service = new ProductsService(null, null, null); List <CartItemDTO> cartItems = new List <CartItemDTO>(); cartItems.Add(null); //Act CartDTO cart = await service.AddProductToCart("CRM", cartItems); }
public void IncreaseExistingProductInCart_Success() { // Arrange var mapperMock = new Mock <IMapper>(); mapperMock.Setup(m => m.Map <CartDTO>(It.IsAny <Cart>())).Returns((Cart c) => new CartDTO() { Total = c.Total, CartItems = c.CartItems.Select(z => new CartItemDTO() { Quantity = z.Quantity }).ToList() }); mapperMock.Setup(m => m.Map <CartItem>(It.IsAny <CartItemDTO>())).Returns((CartItemDTO c) => new CartItem() { Quantity = 1, Product = new ProductItem() { Code = c.Product.Code } }); var rulesMock = new Mock <IRulesEngine>(); rulesMock.Setup(m => m.CalculateCartPrices(It.IsAny <List <CartItem> >(), It.IsAny <List <ProductItem> >())).Returns((List <CartItem> c, List <ProductItem> products) => new Cart() { CartItems = c, Total = 555 }); var mockDb = new Mock <IProductRepository>(); List <ProductItem> result = CreateProductItemsList(); mockDb.Setup(x => x.GetProducts()).Returns(result.AsQueryable()); IProductService service = new ProductsService(mockDb.Object, rulesMock.Object, mapperMock.Object); List <CartItemDTO> cartItems = new List <CartItemDTO>(); cartItems.Add(new CartItemDTO() { Product = new ProductItemDTO() { Code = "CRM" }, Quantity = 1 }); //Act CartDTO cart = service.AddProductToCart("CRM", cartItems).Result; // Assert Assert.AreEqual(2, cart.CartItems[0].Quantity); }
public async Task CodeNotProvided_Fail() { IProductService service = new ProductsService(null, null, null); List <CartItemDTO> cartItems = new List <CartItemDTO>(); cartItems.Add(new CartItemDTO() { Product = new ProductItemDTO() { Code = "CRM" }, Quantity = 1 }); //Act CartDTO cart = await service.AddProductToCart("", cartItems); }