Пример #1
0
 public function testUpdate_canReplaceEntireSetOfAddonsAndDiscounts()
 {
     $oldCreditCard = SubscriptionHelper::createCreditCard();
     $plan = SubscriptionHelper::addOnDiscountPlan();
     $subscription = Braintree\Subscription::create(['paymentMethodToken' => $oldCreditCard->token, 'price' => '54.99', 'planId' => $plan['id']])->subscription;
     $result = Braintree\Subscription::update($subscription->id, ['addOns' => ['add' => [['inheritedFromId' => 'increase_30'], ['inheritedFromId' => 'increase_20']]], 'discounts' => ['add' => [['inheritedFromId' => 'discount_15']]], 'options' => ['replaceAllAddOnsAndDiscounts' => true]]);
     $this->assertTrue($result->success);
     $subscription = $result->subscription;
     $this->assertEquals(2, sizeof($subscription->addOns));
     $addOns = $subscription->addOns;
     SubscriptionHelper::sortModificationsById($addOns);
     $this->assertEquals($addOns[0]->id, "increase_20");
     $this->assertEquals($addOns[1]->id, "increase_30");
     $this->assertEquals(1, sizeof($subscription->discounts));
     $discounts = $subscription->discounts;
     $this->assertEquals($discounts[0]->id, "discount_15");
 }
Пример #2
0
 public function testSnapshotPlanIdAddOnsAndDiscountsFromSubscription()
 {
     $creditCard = SubscriptionHelper::createCreditCard();
     $plan = SubscriptionHelper::triallessPlan();
     $result = Braintree\Subscription::create(['paymentMethodToken' => $creditCard->token, 'planId' => $plan['id'], 'addOns' => ['add' => [['amount' => '11.00', 'inheritedFromId' => 'increase_10', 'quantity' => 2, 'numberOfBillingCycles' => 5], ['amount' => '21.00', 'inheritedFromId' => 'increase_20', 'quantity' => 3, 'numberOfBillingCycles' => 6]]], 'discounts' => ['add' => [['amount' => '7.50', 'inheritedFromId' => 'discount_7', 'quantity' => 2, 'neverExpires' => true]]]]);
     $transaction = $result->subscription->transactions[0];
     $this->assertEquals($transaction->planId, $plan['id']);
     $addOns = $transaction->addOns;
     SubscriptionHelper::sortModificationsById($addOns);
     $this->assertEquals($addOns[0]->amount, "11.00");
     $this->assertEquals($addOns[0]->id, "increase_10");
     $this->assertEquals($addOns[0]->quantity, 2);
     $this->assertEquals($addOns[0]->numberOfBillingCycles, 5);
     $this->assertFalse($addOns[0]->neverExpires);
     $this->assertEquals($addOns[1]->amount, "21.00");
     $this->assertEquals($addOns[1]->id, "increase_20");
     $this->assertEquals($addOns[1]->quantity, 3);
     $this->assertEquals($addOns[1]->numberOfBillingCycles, 6);
     $this->assertFalse($addOns[1]->neverExpires);
     $discounts = $transaction->discounts;
     $this->assertEquals($discounts[0]->amount, "7.50");
     $this->assertEquals($discounts[0]->id, "discount_7");
     $this->assertEquals($discounts[0]->quantity, 2);
     $this->assertEquals($discounts[0]->numberOfBillingCycles, null);
     $this->assertTrue($discounts[0]->neverExpires);
 }