public void ShouldNotRemovePartyFromCart() { cart = new Cart { ExternalId = visitorId.ToString(), Lines = new ReadOnlyCollectionAdapter <CartLine> { new CartLine() }, AccountingCustomerParty = new CartParty() { PartyID = "1", ExternalId = "1" }, BuyerCustomerParty = new CartParty() { PartyID = "1", ExternalId = "1" } }; partiesList = new List <Party>(); request = new RemovePartiesRequest(cart, partiesList); result = new RemovePartiesResult(); args = new ServicePipelineArgs(request, result); var addressesToRemove = new[] { new CustomerAddressModel() { AddressType = AddressTypeModel.Billing } }; var responseModel = new Response() { Message = "Success", Success = true }; client.RemoveAddresses(addressesToRemove, visitorId).Returns(responseModel); // act processor.Process(args); // assert result.Success.Should().BeTrue(); }
/// <summary> /// Processes the specified arguments. /// </summary> /// <param name="args">The arguments.</param> public override void Process(Sitecore.Commerce.Pipelines.ServicePipelineArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.ArgumentNotNull(args.Request, "args.request"); RemovePartiesRequest request = (RemovePartiesRequest)args.Request; RemovePartiesResult result = (RemovePartiesResult)args.Result; var cartContext = CartPipelineContext.Get(request.RequestContext); Assert.IsNotNull(cartContext, "cartContext"); List <Party> partiesRemoved = new List <Party>(); if (cartContext.Basket != null) { foreach (Party party in request.Parties) { if (party != null) { Assert.ArgumentNotNullOrEmpty(party.ExternalId, "party.ExternalId"); OrderAddress orderAddress = cartContext.Basket.Addresses[party.ExternalId]; if (orderAddress != null) { cartContext.Basket.Addresses.Remove(orderAddress); partiesRemoved.Add(party); } } } } result.Parties = partiesRemoved; // Needed by the RunSaveCart CommerceConnect pipeline. var translateCartRequest = new TranslateOrderGroupToEntityRequest(cartContext.UserId, cartContext.ShopName, cartContext.Basket); var translateCartResult = PipelineUtility.RunCommerceConnectPipeline <TranslateOrderGroupToEntityRequest, TranslateOrderGroupToEntityResult>(PipelineNames.TranslateOrderGroupToEntity, translateCartRequest); result.Cart = translateCartResult.Cart; }