You are here

ValidationErrorCollectionTest.php in Commerce Braintree 7

File

braintree_php/tests/integration/Error/ValidationErrorCollectionTest.php
View source
<?php

require_once realpath(dirname(__FILE__)) . '/../../TestHelper.php';
class Braintree_Error_ValidationErrorCollectionTest extends PHPUnit_Framework_TestCase {
  function mapValidationErrorsToCodes($validationErrors) {
    $codes = array_map(create_function('$validationError', 'return $validationError->code;'), $validationErrors);
    sort($codes);
    return $codes;
  }
  function test_shallowAll_givesAllErrorsShallowly() {
    $result = Braintree_Customer::create(array(
      'email' => 'invalid',
      'creditCard' => array(
        'number' => '1234123412341234',
        'expirationDate' => 'invalid',
        'billingAddress' => array(
          'countryName' => 'invalid',
        ),
      ),
    ));
    $this
      ->assertEquals(array(), $result->errors
      ->shallowAll());
    $expectedCustomerErrors = array(
      Braintree_Error_Codes::CUSTOMER_EMAIL_IS_INVALID,
    );
    $actualCustomerErrors = $result->errors
      ->forKey('customer')
      ->shallowAll();
    $this
      ->assertEquals($expectedCustomerErrors, self::mapValidationErrorsToCodes($actualCustomerErrors));
    $expectedCreditCardErrors = array(
      Braintree_Error_Codes::CREDIT_CARD_EXPIRATION_DATE_IS_INVALID,
      Braintree_Error_Codes::CREDIT_CARD_NUMBER_IS_INVALID,
    );
    $actualCreditCardErrors = $result->errors
      ->forKey('customer')
      ->forKey('creditCard')
      ->shallowAll();
    $this
      ->assertEquals($expectedCreditCardErrors, self::mapValidationErrorsToCodes($actualCreditCardErrors));
  }
  function test_deepAll_givesAllErrorsDeeply() {
    $result = Braintree_Customer::create(array(
      'email' => 'invalid',
      'creditCard' => array(
        'number' => '1234123412341234',
        'expirationDate' => 'invalid',
        'billingAddress' => array(
          'countryName' => 'invalid',
        ),
      ),
    ));
    $expectedErrors = array(
      Braintree_Error_Codes::CUSTOMER_EMAIL_IS_INVALID,
      Braintree_Error_Codes::CREDIT_CARD_EXPIRATION_DATE_IS_INVALID,
      Braintree_Error_Codes::CREDIT_CARD_NUMBER_IS_INVALID,
      Braintree_Error_Codes::ADDRESS_COUNTRY_NAME_IS_NOT_ACCEPTED,
    );
    $actualErrors = $result->errors
      ->deepAll();
    $this
      ->assertEquals($expectedErrors, self::mapValidationErrorsToCodes($actualErrors));
    $expectedErrors = array(
      Braintree_Error_Codes::CREDIT_CARD_EXPIRATION_DATE_IS_INVALID,
      Braintree_Error_Codes::CREDIT_CARD_NUMBER_IS_INVALID,
      Braintree_Error_Codes::ADDRESS_COUNTRY_NAME_IS_NOT_ACCEPTED,
    );
    $actualErrors = $result->errors
      ->forKey('customer')
      ->forKey('creditCard')
      ->deepAll();
    $this
      ->assertEquals($expectedErrors, self::mapValidationErrorsToCodes($actualErrors));
  }

}