public void CartItemManager_AddToCart_ShouldPersistToDb() { var addToCartModel = new AddToCartModel { ProductVariant = _productVariant, Quantity = 1 }; _cartItemManager.AddToCart(addToCartModel); Session.QueryOver<CartItem>().RowCount().Should().Be(1); }
public void CartItemManager_AddToCart_AddsAnItemToTheCart() { var addToCartModel = new AddToCartModel { ProductVariant= _productVariant, Quantity = 1 }; _cartItemManager.AddToCart(addToCartModel); _cartModel.Items.Should().HaveCount(1); }
public void CartItemManager_AddToCart_WithExistingItemShouldOnlyHave1DbRecord() { _cartModel.Items.Add(new CartItem { Item = _productVariant, Quantity = 1 }); var addToCartModel = new AddToCartModel { ProductVariant = _productVariant, Quantity = 1 }; _cartItemManager.AddToCart(addToCartModel); Session.QueryOver<CartItem>().RowCount().Should().Be(1); }
public void CartItemManager_AddToCart_ShouldIncreaseAmountIfItAlreadyExists() { _cartModel.Items.Add(new CartItem { Item = _productVariant, Quantity = 1 }); var addToCartModel = new AddToCartModel { ProductVariant = _productVariant, Quantity = 1 }; _cartItemManager.AddToCart(addToCartModel); _cartModel.Items.Should().HaveCount(1); }
public CanAddQuantityValidationResult CanAddQuantity(AddToCartModel model) { ProductVariant variant = model.ProductVariant; if (variant == null) return new CanAddQuantityValidationResult("Cannot find the selected variant"); var quantity = GetRequestedQuantity(variant, model.Quantity); if (quantity <= 0) return new CanAddQuantityValidationResult("Cannot add an amount less than 1"); CanBuyStatus canBuy = _productVariantAvailabilityService.CanBuy(variant, quantity); if (!canBuy.OK) return new CanAddQuantityValidationResult(canBuy.Message); return CanAddQuantityValidationResult.Successful; }
public AddToCartResult Add(AddToCartModel addToCartModel) { if (_cartValidationService.CanAddQuantity(addToCartModel).Valid) { _cartItemManager.AddToCart(addToCartModel); return new AddToCartResult { Success = true, ProductVariantId = addToCartModel.ProductVariant.Id, Quantity = addToCartModel.Quantity }; } return new AddToCartResult(); }
public void AddToCart(AddToCartModel model) { int quantity = model.Quantity; ProductVariant productVariant = model.ProductVariant; var data = model.Data; var cart = _cartBuilder.BuildCart(); CartItem cartItem = GetExistingItem(cart, productVariant, data); if (cartItem != null) cartItem.Quantity += quantity; else { cartItem = new CartItem { Item = productVariant, Quantity = quantity, UserGuid = _getUserGuid.UserGuid, Data = data }; cart.Items.Add(cartItem); } _session.Transact(session => session.SaveOrUpdate(cartItem)); }