public async Task ShouldCreateCartDiscountAsync() { // Arrange CartDiscountDraft cartDiscountDraft = await Helper.GetTestCartDiscountDraft(this._project, this._client, Helper.GetRandomBoolean(), Helper.GetRandomBoolean(), "lineItemCount(1 = 1) > 0", "1=1", 5000, false); // Act Response <CartDiscount> cartDiscountResponse = await _client.CartDiscounts().CreateCartDiscountAsync(cartDiscountDraft); // Assert var cartDiscount = cartDiscountResponse.Result; Assert.IsNotNull(cartDiscount); Assert.IsNotNull(cartDiscount.Id); Assert.AreEqual(cartDiscountDraft.SortOrder, cartDiscount.SortOrder); Assert.AreEqual(cartDiscountDraft.CartPredicate, cartDiscount.CartPredicate); Assert.AreEqual(cartDiscountDraft.Name.Values, cartDiscount.Name.Values); Assert.AreEqual(cartDiscountDraft.Description.Values, cartDiscount.Description.Values); Assert.That(cartDiscountDraft.ValidFrom, Is.EqualTo(cartDiscount.ValidFrom).Within(1).Seconds); Assert.That(cartDiscountDraft.ValidUntil, Is.EqualTo(cartDiscount.ValidUntil).Within(1).Seconds); Assert.AreEqual(cartDiscountDraft.IsActive, cartDiscount.IsActive); Assert.AreEqual(cartDiscountDraft.RequiresDiscountCode, cartDiscount.RequiresDiscountCode); cartDiscount.Target.ShouldBeEquivalentTo(cartDiscountDraft.Target); cartDiscount.Value.ShouldBeEquivalentTo(cartDiscountDraft.Value); // Cleanup await _client.CartDiscounts().DeleteCartDiscountAsync(cartDiscount); }
public static CartDiscountDraft DefaultCartDiscountDraftRequireDiscountCode(CartDiscountDraft draft) { var cartDiscountDraft = DefaultCartDiscountDraft(draft); cartDiscountDraft.RequiresDiscountCode = true; return(cartDiscountDraft); }
public static async Task <DiscountCode> CreateTestDiscountCode(Project.Project project, Client client) { var name = new LocalizedString(); var description = new LocalizedString(); foreach (string language in project.Languages) { string randomPostfix = GetRandomString(10); name.SetValue(language, string.Concat("test-discount-code-name", language, " ", randomPostfix)); description.SetValue(language, string.Concat("test-discount-code-description", language, "-", randomPostfix)); } CartDiscountDraft cartDiscountDraft = (await GetTestCartDiscountDraft(project, client)).WithRequiresDiscountCode(true); Response <CartDiscount> cartDiscountResponse = await client.CartDiscounts().CreateCartDiscountAsync(cartDiscountDraft); var discountCodeDraft = new DiscountCodeDraft( GetRandomString(10), new List <Reference> { new Reference { Id = cartDiscountResponse.Result.Id, ReferenceType = ReferenceType.CartDiscount } }, GetRandomBoolean()) { Description = description, Name = name, MaxApplications = GetRandomNumber(100, 1000), MaxApplicationsPerCustomer = GetRandomNumber(100, 1000), CartPredicate = "totalPrice.centAmount > 1000" }; Response <DiscountCode> discountCode = await client.DiscountCodes().CreateDiscountCodeAsync(discountCodeDraft); return(discountCode.Result); }
public CartDiscount CreateCartDiscount(CartDiscountDraft cartDiscountDraft) { IClient commerceToolsClient = this.GetService <IClient>(); CartDiscount cartDiscount = commerceToolsClient.ExecuteAsync(new CreateCommand <CartDiscount>(cartDiscountDraft)).Result; return(cartDiscount); }
public static CartDiscountDraft DefaultCartDiscountDraftWithKey(CartDiscountDraft draft, string key) { var cartDiscountDraft = DefaultCartDiscountDraft(draft); cartDiscountDraft.Key = key; return(cartDiscountDraft); }
public async Task ShouldCreateCartDiscountAsync() { // Arrange CartDiscountDraft cartDiscountDraft = await Helper.GetTestCartDiscountDraft(this._project, this._client); // Act Response <CartDiscount> cartDiscountResponse = await _client.CartDiscounts().CreateCartDiscountAsync(cartDiscountDraft); // Assert var cartDiscount = cartDiscountResponse.Result; Assert.NotNull(cartDiscount); Assert.NotNull(cartDiscount.Id); Assert.Equal(cartDiscountDraft.SortOrder, cartDiscount.SortOrder); Assert.Equal(cartDiscountDraft.CartPredicate, cartDiscount.CartPredicate); Assert.Equal(cartDiscountDraft.Name.Values, cartDiscount.Name.Values); Assert.Equal(cartDiscountDraft.Description.Values, cartDiscount.Description.Values); Assert.True((cartDiscount.ValidFrom - cartDiscountDraft.ValidFrom).Value.TotalSeconds <= 1); Assert.True((cartDiscount.ValidUntil - cartDiscountDraft.ValidUntil).Value.TotalSeconds <= 1); Assert.Equal(cartDiscountDraft.IsActive, cartDiscount.IsActive); Assert.Equal(cartDiscountDraft.RequiresDiscountCode, cartDiscount.RequiresDiscountCode); Assert.Equal(cartDiscount.Target.Type, cartDiscountDraft.Target.Type); Assert.Equal(cartDiscount.Target.Predicate, cartDiscountDraft.Target.Predicate); Assert.Equal(cartDiscount.Value.Type, cartDiscountDraft.Value.Type); // Cleanup await _client.CartDiscounts().DeleteCartDiscountAsync(cartDiscount); }
public void CreateCartDiscount() { IClient commerceToolsClient = this.cartDiscountFixture.GetService <IClient>(); CartDiscountDraft cartDiscountDraft = this.cartDiscountFixture.GetCartDiscountDraft(); CartDiscount cartDiscount = commerceToolsClient .ExecuteAsync(new CreateCommand <CartDiscount>(cartDiscountDraft)).Result; this.cartDiscountFixture.CartDiscountsToDelete.Add(cartDiscount); Assert.Equal(cartDiscountDraft.Name["en"], cartDiscount.Name["en"]); }
public static async Task <CartDiscount> CreateTestCartDiscount(Project.Project project, Client client, bool requiresDiscountCode = false) { CartDiscountDraft cartDiscountDraft = await GetTestCartDiscountDraft(project, client); if (requiresDiscountCode) { cartDiscountDraft = cartDiscountDraft.WithRequiresDiscountCode(true); } Response <CartDiscount> cartDiscountResponse = await client.CartDiscounts().CreateCartDiscountAsync(cartDiscountDraft); return(cartDiscountResponse.Result); }
public static CartDiscountDraft DefaultCartDiscountDraftWithCustomType(CartDiscountDraft draft, Type type, Fields fields) { var customFieldsDraft = new CustomFieldsDraft { Type = type.ToKeyResourceIdentifier(), Fields = fields }; var cartDiscountDraft = DefaultCartDiscountDraft(draft); cartDiscountDraft.Custom = customFieldsDraft; return(cartDiscountDraft); }
public static CartDiscountDraft DefaultCartDiscountDraft(CartDiscountDraft cartDiscountDraft) { var random = TestingUtility.RandomInt(); cartDiscountDraft.Key = $"Key_{random}"; cartDiscountDraft.Name = new LocalizedString() { { "en", $"CartDiscount_{random}" } }; cartDiscountDraft.Value = TestingUtility.GetRandomAbsoluteCartDiscountValue(); cartDiscountDraft.Target = new LineItemsCartDiscountTarget { Predicate = "1 = 1" }; //match all line items cartDiscountDraft.CartPredicate = "1 = 1"; //match all carts cartDiscountDraft.SortOrder = TestingUtility.RandomSortOrder(); cartDiscountDraft.ValidFrom = DateTime.Today; cartDiscountDraft.ValidUntil = DateTime.Today.AddDays(10); cartDiscountDraft.IsActive = true; cartDiscountDraft.StackingMode = StackingMode.Stacking; cartDiscountDraft.RequiresDiscountCode = false; return(cartDiscountDraft); }
public CartDiscountDraft GetCartDiscountDraft(bool requireDiscountCode = false) { CartDiscountDraft cartDiscountDraft = new CartDiscountDraft(); cartDiscountDraft.Name = new LocalizedString() { { "en", this.RandomString(10) } }; cartDiscountDraft.Description = new LocalizedString() { { "en", this.RandomString(20) } }; cartDiscountDraft.Value = this.GetCartDiscountValueAsAbsolute(); cartDiscountDraft.CartPredicate = "1 = 1"; //match all carts cartDiscountDraft.SortOrder = this.RandomSortOrder(); cartDiscountDraft.Target = GetCartDiscountTargetAsLineItems(); cartDiscountDraft.ValidFrom = DateTime.Today; cartDiscountDraft.ValidUntil = DateTime.Today.AddMonths(1); cartDiscountDraft.IsActive = true; cartDiscountDraft.StackingMode = StackingMode.Stacking; cartDiscountDraft.RequiresDiscountCode = requireDiscountCode; return(cartDiscountDraft); }
public static void SetCartPredicate(this CartDiscountDraft cartDiscountDraft, Expression <Func <Cart, bool> > expression) { cartDiscountDraft.CartPredicate = expression.RenderDiscountPredicate(); }