public function testCreateFromTransparentRedirect_withValidationErrors()
{
Test\Helper::suppressDeprecationWarnings();
$queryString = $this->createTransactionViaTr(['transaction' => ['customer' => ['first_name' => str_repeat('x', 256)], 'credit_card' => ['number' => 'invalid', 'expiration_date' => '']]], ['transaction' => ['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);
}