You are here

function Braintree_CustomerTest::testUpdateFromTransparentRedirect_withUpdateExisting in Commerce Braintree 7

File

braintree_php/tests/integration/CustomerTest.php, line 756

Class

Braintree_CustomerTest

Code

function testUpdateFromTransparentRedirect_withUpdateExisting() {
  Braintree_TestHelper::suppressDeprecationWarnings();
  $customer = Braintree_Customer::create(array(
    'firstName' => 'Mike',
    'lastName' => 'Jones',
    'creditCard' => array(
      'number' => '5105105105105100',
      'expirationDate' => '05/12',
      'cardholderName' => 'Mike Jones',
      'billingAddress' => array(
        'firstName' => 'Drew',
        'lastName' => 'Smith',
      ),
    ),
  ))->customer;
  $queryString = $this
    ->updateCustomerViaTr(array(), array(
    'customerId' => $customer->id,
    'customer' => array(
      'firstName' => 'New First',
      'lastName' => 'New Last',
      'creditCard' => array(
        'number' => '4111111111111111',
        'expirationDate' => '05/13',
        'cardholderName' => 'New Cardholder',
        'options' => array(
          'updateExistingToken' => $customer->creditCards[0]->token,
        ),
        'billingAddress' => array(
          'firstName' => 'New First Billing',
          'lastName' => 'New Last Billing',
          'options' => array(
            'updateExisting' => true,
          ),
        ),
      ),
    ),
  ));
  $result = Braintree_Customer::updateFromTransparentRedirect($queryString);
  $this
    ->assertTrue($result->success);
  $this
    ->assertEquals(true, $result->success);
  $customer = $result->customer;
  $this
    ->assertEquals('New First', $customer->firstName);
  $this
    ->assertEquals('New Last', $customer->lastName);
  $this
    ->assertEquals(1, sizeof($result->customer->creditCards));
  $creditCard = $customer->creditCards[0];
  $this
    ->assertEquals('411111', $creditCard->bin);
  $this
    ->assertEquals('1111', $creditCard->last4);
  $this
    ->assertEquals('New Cardholder', $creditCard->cardholderName);
  $this
    ->assertEquals('05/2013', $creditCard->expirationDate);
  $this
    ->assertEquals(1, sizeof($result->customer->addresses));
  $address = $customer->addresses[0];
  $this
    ->assertEquals($address, $creditCard->billingAddress);
  $this
    ->assertEquals('New First Billing', $address->firstName);
  $this
    ->assertEquals('New Last Billing', $address->lastName);
}