public void SetPaymentInfo_IfAddPaymentInfoFailed_ShouldReturnsError( CartResult loadCartResult, CartResult updateCartResult, CartResult removeCartResult, AddPaymentInfoResult addCartResult, Address address, Party party, Models.Entities.Payment.FederatedPaymentInfo federatedPaymentInfo, SystemMessage systemMessage) { //arrange loadCartResult.Success = true; this.cartManager.LoadCart(Arg.Any <string>(), Arg.Any <string>()).Returns(loadCartResult); updateCartResult.Success = true; this.cartManager.UpdateCart(Arg.Any <Cart>(), Arg.Any <CartBase>()).Returns(updateCartResult); removeCartResult.Success = true; this.cartManager.RemovePaymentInfo(Arg.Any <Cart>()).Returns(removeCartResult); addCartResult.Success = false; addCartResult.SystemMessages.Add(systemMessage); this.cartManager.AddPaymentInfo(Arg.Any <Cart>(), Arg.Any <Party>(), Arg.Any <FederatedPaymentInfo>()).Returns(addCartResult); this.paymentMapper.Map <Address, Party>(address).Returns(party); //act var result = this.billingService.SetPaymentInfo(address, federatedPaymentInfo); //assert Assert.False(result.Success); Assert.Equal(systemMessage.Message, result.Errors[0]); }
public void SetPaymentInfo_IfAddressIsNull_ShouldReturnsException(Models.Entities.Payment.FederatedPaymentInfo federatedPaymentInfo) { //arrange Action Act = () => this.billingService.SetPaymentInfo(null, federatedPaymentInfo); //act & assert Assert.Throws <ArgumentNullException>(Act); }
public Result <VoidResult> SetPaymentInfo(Address billingAddress, FederatedPaymentInfo federatedPayment) { Assert.ArgumentNotNull(billingAddress, nameof(billingAddress)); Assert.ArgumentNotNull(federatedPayment, nameof(federatedPayment)); var result = new Result <VoidResult>(new VoidResult()); var cartResult = this.cartManager.LoadCart( this.storefrontContext.ShopName, this.visitorContext.CurrentUser?.CustomerId ?? this.visitorContext.ContactId); if (!cartResult.Success) { result.SetErrors(cartResult.SystemMessages.Select(m => m.Message).ToList()); return(result); } cartResult = this.UpdateCartEmail(cartResult.Cart, billingAddress.Email); if (!cartResult.Success) { result.SetErrors(cartResult.SystemMessages.Select(m => m.Message).ToList()); return(result); } if (cartResult.Cart.Payment != null && cartResult.Cart.Payment.Any()) { cartResult = this.cartManager.RemovePaymentInfo(cartResult.Cart); if (!cartResult.Success) { result.SetErrors(cartResult.SystemMessages.Select(m => m.Message).ToList()); return(result); } } var party = this.CreatePartyFromAddress(billingAddress); var federatedPaymentInfo = this.paymentMapper.Map <FederatedPaymentInfo, Sitecore.Commerce.Entities.Carts.FederatedPaymentInfo>( federatedPayment); var addPaymentInfoResult = this.cartManager.AddPaymentInfo(cartResult.Cart, party, federatedPaymentInfo); if (!addPaymentInfoResult.Success) { result.SetErrors(addPaymentInfoResult.SystemMessages.Select(m => m.Message).ToList()); return(result); } return(result); }
public void SetPaymentInfo__IfLoadCartFailed_ShouldReturnsError( CartResult cartResult, Address address, Models.Entities.Payment.FederatedPaymentInfo federatedPaymentInfo, SystemMessage systemMessage) { //arrange cartResult.Success = false; cartResult.SystemMessages.Add(systemMessage); this.cartManager.LoadCart(Arg.Any <string>(), Arg.Any <string>()).Returns(cartResult); //act var result = this.billingService.SetPaymentInfo(address, federatedPaymentInfo); //assert Assert.False(result.Success); Assert.Equal(systemMessage.Message, result.Errors[0]); }