/// <summary>
        /// Deletes the wish list.
        /// </summary>
        /// <param name="storefront">The storefront.</param>
        /// <param name="visitorContext">The visitor context.</param>
        /// <param name="wishListId">The wish list identifier.</param>
        /// <returns>The manager response with the wish list as the result.</returns>
        public virtual ManagerResponse <DeleteWishListResult, WishList> DeleteWishList([NotNull] CommerceStorefront storefront, [NotNull] string userId, string wishListId)
        {
            Assert.ArgumentNotNull(storefront, "storefront");
            Assert.ArgumentNotNullOrEmpty(wishListId, "wishListId");

            var request = new DeleteWishListRequest(new WishList {
                UserId = userId, CustomerId = userId, ExternalId = wishListId, ShopName = storefront.ShopName
            });
            var result = this.WishListServiceProvider.DeleteWishList(request);

            result.WriteToSitecoreLog();

            return(new ManagerResponse <DeleteWishListResult, WishList>(result, result.WishList));
        }
        /// <summary>
        /// Deletes the wish list.
        /// </summary>
        /// <param name="storefront">The storefront.</param>
        /// <param name="visitorContext">The visitor context.</param>
        /// <param name="wishListId">The wish list identifier.</param>
        /// <returns>The manager response with the wish list as the result.</returns>
        public virtual ManagerResponse <DeleteWishListResult, WishList> DeleteWishList([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, string wishListId)
        {
            Assert.ArgumentNotNull(storefront, "storefront");
            Assert.ArgumentNotNull(visitorContext, "visitorContext");
            Assert.ArgumentNotNullOrEmpty(wishListId, "wishListId");

            var request = new DeleteWishListRequest(new WishList {
                UserId = visitorContext.UserId, CustomerId = visitorContext.UserId, ExternalId = wishListId, ShopName = storefront.ShopName
            });
            var result = this.WishListServiceProvider.DeleteWishList(request);

            if (!result.Success)
            {
                Helpers.LogSystemMessages(result.SystemMessages, result);
            }

            return(new ManagerResponse <DeleteWishListResult, WishList>(result, result.WishList));
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="DeleteCartTest"/> class.
        /// </summary>
        public DeleteWishlistTest()
        {
            this.visitorId = Guid.NewGuid();
            this.wishlist  = new WishList {
                ExternalId = this.visitorId.ToString()
            };
            this.request = new DeleteWishListRequest(this.wishlist);
            this.result  = new DeleteWishListResult();
            this.args    = new ServicePipelineArgs(this.request, this.result);

            this.client = Substitute.For <IWishlistsServiceChannel>();

            var clientFactory = Substitute.For <ServiceClientFactory>();

            clientFactory.CreateClient <IWishlistsServiceChannel>(Arg.Any <string>(), Arg.Any <string>()).Returns(this.client);

            this.processor = new DeleteWishlist {
                ClientFactory = clientFactory
            };
        }
        /// <summary>
        /// Deletes the wish list.
        /// </summary>
        /// <param name="storefront">The storefront.</param>
        /// <param name="visitorContext">The visitor context.</param>
        /// <param name="wishListId">The wish list identifier.</param>
        /// <returns>The manager response with the wish list as the result.</returns>
        public virtual ManagerResponse<DeleteWishListResult, WishList> DeleteWishList([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, string wishListId)
        {
            Assert.ArgumentNotNull(storefront, "storefront");
            Assert.ArgumentNotNull(visitorContext, "visitorContext");
            Assert.ArgumentNotNullOrEmpty(wishListId, "wishListId");

            var request = new DeleteWishListRequest(new WishList { UserId = visitorContext.UserId, CustomerId = visitorContext.UserId, ExternalId = wishListId, ShopName = storefront.ShopName });
            var result = this.WishListServiceProvider.DeleteWishList(request);
            if (!result.Success)
            {
                Helpers.LogSystemMessages(result.SystemMessages, result);
            }

            return new ManagerResponse<DeleteWishListResult, WishList>(result, result.WishList);
        }