Braintree.Tests.Integration.SubscriptionIntegrationTest.Update_UpdatesAddOnsAndDiscounts C# (CSharp) Метод

Update_UpdatesAddOnsAndDiscounts() приватный Метод

private Update_UpdatesAddOnsAndDiscounts ( ) : void
Результат void
        public void Update_UpdatesAddOnsAndDiscounts()
        {
            TestPlan plan = PlanFixture.ADD_ON_DISCOUNT_PLAN;
            SubscriptionRequest createRequest = new SubscriptionRequest
            {
                PaymentMethodToken = creditCard.Token,
                PlanId = plan.Id
            };

            Subscription subscription = gateway.Subscription.Create(createRequest).Target;

            SubscriptionRequest request = new SubscriptionRequest
            {
                AddOns = new AddOnsRequest
                {
                    Add = new AddAddOnRequest[] {
                        new AddAddOnRequest{
                            InheritedFromId = "increase_30",
                            Amount = 31M,
                            NumberOfBillingCycles = 3,
                            Quantity = 7
                        }
                    },
                    Remove = new string[] { "increase_20" },
                    Update = new UpdateAddOnRequest[] {
                        new UpdateAddOnRequest
                        {
                            ExistingId = "increase_10",
                            Amount = 30M,
                            NeverExpires = true,
                            Quantity = 9
                        }
                    }
                },
                Discounts = new DiscountsRequest
                {
                    Add = new AddDiscountRequest[] {
                        new AddDiscountRequest{
                            InheritedFromId = "discount_15",
                            Amount = 23M,
                            NumberOfBillingCycles = 2,
                            Quantity = 9
                        }
                    },
                    Remove = new string[] { "discount_11" },
                    Update = new UpdateDiscountRequest[] {
                        new UpdateDiscountRequest
                        {
                            ExistingId = "discount_7",
                            Amount = 15M,
                        }
                    }
                }
            };

            Result<Subscription> result = gateway.Subscription.Update(subscription.Id, request);
            Assert.IsTrue(result.IsSuccess());
            subscription = result.Target;

            List<AddOn> addOns = subscription.AddOns;
            addOns.Sort(TestHelper.CompareModificationsById);

            Assert.AreEqual(2, addOns.Count);

            Assert.AreEqual("increase_10", addOns[0].Id);
            Assert.AreEqual(30M, addOns[0].Amount);
            Assert.AreEqual(9, addOns[0].Quantity);
            Assert.IsTrue(addOns[0].NeverExpires.Value);
            Assert.IsNull(addOns[0].NumberOfBillingCycles);

            Assert.AreEqual("increase_30", addOns[1].Id);
            Assert.AreEqual(31M, addOns[1].Amount);
            Assert.AreEqual(7, addOns[1].Quantity);
            Assert.IsFalse(addOns[1].NeverExpires.Value);
            Assert.AreEqual(3, addOns[1].NumberOfBillingCycles);

            List<Discount> discounts = subscription.Discounts;
            discounts.Sort(TestHelper.CompareModificationsById);

            Assert.AreEqual(2, discounts.Count);

            Assert.AreEqual("discount_15", discounts[0].Id);
            Assert.AreEqual(23M, discounts[0].Amount);
            Assert.AreEqual(9, discounts[0].Quantity);
            Assert.IsFalse(discounts[0].NeverExpires.Value);
            Assert.AreEqual(2, discounts[0].NumberOfBillingCycles);

            Assert.AreEqual("discount_7", discounts[1].Id);
            Assert.AreEqual(15M, discounts[1].Amount);
            Assert.AreEqual(1, discounts[1].Quantity);
            Assert.IsTrue(discounts[1].NeverExpires.Value);
            Assert.IsNull(discounts[1].NumberOfBillingCycles);
        }
SubscriptionIntegrationTest