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); }