public void YieldsCorrectRemainingItem_WhenAddingMultipleProductsThenRemovingOneFromCart() { // Arrange var cartItemsAdded = new List <CartItem>(); _cartService = new CartItemService(_cartItemRepository); var cartItem1 = Mock.Of <CartItem>(ci => ci.Id == 1 && ci.Quantity == 1 && ci.ProductId == 101); var cartItem2 = Mock.Of <CartItem>(ci => ci.Id == 2 && ci.Quantity == 1 && ci.ProductId == 102); Mock.Get(_cartItemRepository).Setup(cir => cir.AddCartItem(It.IsAny <CartItem>())) .Callback <CartItem>(ci => cartItemsAdded.Add(ci)); Mock.Get(_cartItemRepository).Setup(cir => cir.RemoveCartItem(It.IsAny <CartItem>())) .Callback <CartItem>(ci => cartItemsAdded.Remove(ci)); Mock.Get(_cartItemRepository).Setup(cir => cir.GetCartItems()) .Returns(cartItemsAdded); // Act _cartService.Add(cartItem1); _cartService.Add(cartItem2); _cartService.Remove(cartItem2.Id); // Assert Mock.Get(_cartItemRepository).Verify(cir => cir.AddCartItem(cartItem1), Times.Once()); Mock.Get(_cartItemRepository).Verify(cir => cir.AddCartItem(cartItem2), Times.Once()); cartItemsAdded.Should().ContainSingle(ci => ci == cartItem1); }
public IActionResult Add(CartItem cartItem) { var result = _cartItemService.Add(cartItem); if (result.Success) { return(Ok(result)); } return(BadRequest(result)); }
public void CartItemRepoAddCartItemInvoked_WhenAddingToCart() { // Arrange _cartService = new CartItemService(_cartItemRepository); // Act _cartService.Add(_cartItem); // Assert Mock.Get(_cartItemRepository).Verify(cir => cir.AddCartItem(_cartItem), Times.Once); }
public void YieldsCorrectCount_WhenAddMultipleProductsToCart() { // Arrange var cartItemsAdded = new List <CartItem>(); _cartService = new CartItemService(_cartItemRepository); var cartItem1 = Mock.Of <CartItem>(ci => ci.Id == 1 && ci.Quantity == 1 && ci.ProductId == 101); var cartItem2 = Mock.Of <CartItem>(ci => ci.Id == 2 && ci.Quantity == 1 && ci.ProductId == 102); // Act _cartService.Add(cartItem1); _cartService.Add(cartItem2); // Assert Mock.Get(_cartItemRepository).Verify(cir => cir.AddCartItem(cartItem1), Times.Once()); Mock.Get(_cartItemRepository).Verify(cir => cir.AddCartItem(cartItem2), Times.Once()); }
public void AddCartItemInvokedWithMatchingCartItem_WhenAddingToCart() { // Arrange _cartService = new CartItemService(_cartItemRepository); // Act _cartService.Add(_cartItem); // Assert Mock.Get(_cartItemRepository).Verify(cir => cir.AddCartItem(It.Is <CartItem>(ci => ci.ProductId == _cartItem.ProductId)), Times.Once); }
public async Task <IActionResult> Create([FromBody] AddToCartRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorMessages())); } try { var response = await _cartItemService.Add(request); return(Ok(response)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public IActionResult Add([FromBody] CartItem cartItem) { cartItemService.Add(cartItem); return(Ok()); }