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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #7
0
        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"]);
        }
Exemple #8
0
        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);
        }
Exemple #11
0
        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();
 }