function testParseAndValidateQueryString_throwsAuthenticationErrorIfBadCredentials()
 {
     Braintree_TestHelper::suppressDeprecationWarnings();
     $privateKey = Braintree_Configuration::privateKey();
     Braintree_Configuration::privateKey('incorrect');
     try {
         $trData = Braintree_TransparentRedirect::createCustomerData(array("redirectUrl" => "http://www.example.com"));
         $queryString = Braintree_TestHelper::submitTrRequest(Braintree_Customer::createCustomerUrl(), array(), $trData);
         $this->setExpectedException('Braintree_Exception_Authentication');
         Braintree_Customer::createFromTransparentRedirect($queryString);
     } catch (Exception $e) {
     }
     $privateKey = Braintree_Configuration::privateKey($privateKey);
     if (isset($e)) {
         throw $e;
     }
 }
 function testCreateFromTransparentRedirect_withValidationErrors()
 {
     Braintree_TestHelper::suppressDeprecationWarnings();
     $queryString = $this->createCustomerViaTr(array('customer' => array('first_name' => str_repeat('x', 256), 'credit_card' => array('number' => 'invalid', 'expiration_date' => ''))), array());
     $result = Braintree_Customer::createFromTransparentRedirect($queryString);
     $this->assertFalse($result->success);
     $errors = $result->errors->forKey('customer')->onAttribute('firstName');
     $this->assertEquals(Braintree_Error_Codes::CUSTOMER_FIRST_NAME_IS_TOO_LONG, $errors[0]->code);
     $errors = $result->errors->forKey('customer')->forKey('creditCard')->onAttribute('number');
     $this->assertEquals(Braintree_Error_Codes::CREDIT_CARD_NUMBER_INVALID_LENGTH, $errors[0]->code);
     $errors = $result->errors->forKey('customer')->forKey('creditCard')->onAttribute('expirationDate');
     $this->assertEquals(Braintree_Error_Codes::CREDIT_CARD_EXPIRATION_DATE_IS_REQUIRED, $errors[0]->code);
 }