You are here

function Braintree_TransactionTest::testCreateFromTransparentRedirect_withValidationErrors in Commerce Braintree 7

File

braintree_php/tests/integration/TransactionTest.php, line 1099

Class

Braintree_TransactionTest

Code

function testCreateFromTransparentRedirect_withValidationErrors() {
  Braintree_TestHelper::suppressDeprecationWarnings();
  $queryString = $this
    ->createTransactionViaTr(array(
    'transaction' => array(
      'customer' => array(
        'first_name' => str_repeat('x', 256),
      ),
      'credit_card' => array(
        'number' => 'invalid',
        'expiration_date' => '',
      ),
    ),
  ), array(
    'transaction' => array(
      'type' => Braintree_Transaction::SALE,
    ),
  ));
  $result = Braintree_Transaction::createFromTransparentRedirect($queryString);
  $this
    ->assertFalse($result->success);
  $errors = $result->errors
    ->forKey('transaction')
    ->forKey('customer')
    ->onAttribute('firstName');
  $this
    ->assertEquals(Braintree_Error_Codes::CUSTOMER_FIRST_NAME_IS_TOO_LONG, $errors[0]->code);
  $errors = $result->errors
    ->forKey('transaction')
    ->forKey('creditCard')
    ->onAttribute('number');
  $this
    ->assertTrue(count($errors) > 0);
  $errors = $result->errors
    ->forKey('transaction')
    ->forKey('creditCard')
    ->onAttribute('expirationDate');
  $this
    ->assertEquals(Braintree_Error_Codes::CREDIT_CARD_EXPIRATION_DATE_IS_REQUIRED, $errors[0]->code);
}