/tests/integration/TransparentRedirectTest.php
https://github.com/99designs/braintree_php · PHP · 261 lines · 231 code · 30 blank · 0 comment · 1 complexity · eb4bdcbca62b303dd43346b2b6d891c1 MD5 · raw file
- <?php
- require_once realpath(dirname(__FILE__)) . '/../TestHelper.php';
- class Braintree_TransparentRedirectTest extends PHPUnit_Framework_TestCase
- {
- function testRedirectUrl()
- {
- Braintree_TestHelper::suppressDeprecationWarnings();
- $trData = Braintree_TransparentRedirect::createCustomerData(
- array("redirectUrl" => "http://www.example.com?foo=bar")
- );
- $queryString = Braintree_TestHelper::submitTrRequest(
- Braintree_Configuration::merchantUrl() . '/test/maintenance',
- array(),
- $trData
- );
- $this->setExpectedException('Braintree_Exception_DownForMaintenance');
- Braintree_Customer::createFromTransparentRedirect($queryString);
- }
- function testParseAndValidateQueryString_throwsDownForMaintenanceErrorIfDownForMaintenance()
- {
- Braintree_TestHelper::suppressDeprecationWarnings();
- $trData = Braintree_TransparentRedirect::createCustomerData(
- array("redirectUrl" => "http://www.example.com")
- );
- $queryString = Braintree_TestHelper::submitTrRequest(
- Braintree_Configuration::merchantUrl() . '/test/maintenance',
- array(),
- $trData
- );
- $this->setExpectedException('Braintree_Exception_DownForMaintenance');
- Braintree_Customer::createFromTransparentRedirect($queryString);
- }
- 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 testCreateTransactionFromTransparentRedirect()
- {
- $params = array(
- 'transaction' => array(
- 'customer' => array(
- 'first_name' => 'First'
- ),
- 'credit_card' => array(
- 'number' => '5105105105105100',
- 'expiration_date' => '05/12'
- )
- )
- );
- $trParams = array(
- 'transaction' => array(
- 'type' => Braintree_Transaction::SALE,
- 'amount' => '100.00'
- )
- );
- $trData = Braintree_TransparentRedirect::transactionData(
- array_merge($trParams, array("redirectUrl" => "http://www.example.com"))
- );
- $queryString = Braintree_TestHelper::submitTrRequest(
- Braintree_TransparentRedirect::url(),
- $params,
- $trData
- );
- $result = Braintree_TransparentRedirect::confirm($queryString);
- $this->assertTrue($result->success);
- $this->assertEquals('100.00', $result->transaction->amount);
- $this->assertEquals(Braintree_Transaction::SALE, $result->transaction->type);
- $this->assertEquals(Braintree_Transaction::AUTHORIZED, $result->transaction->status);
- $creditCard = $result->transaction->creditCardDetails;
- $this->assertEquals('510510', $creditCard->bin);
- $this->assertEquals('5100', $creditCard->last4);
- $this->assertEquals('US', $creditCard->customerLocation);
- $this->assertEquals('MasterCard', $creditCard->cardType);
- $this->assertEquals('05/2012', $creditCard->expirationDate);
- $this->assertEquals('510510******5100', $creditCard->maskedNumber);
- $customer = $result->transaction->customerDetails;
- $this->assertequals('First', $customer->firstName);
- }
- function testCreateCustomerFromTransparentRedirect()
- {
- $params = array(
- 'customer' => array(
- 'first_name' => 'Second'
- )
- );
- $trParams = array(
- 'customer' => array(
- 'lastName' => 'Penultimate'
- )
- );
- $trData = Braintree_TransparentRedirect::createCustomerData(
- array_merge($trParams, array("redirectUrl" => "http://www.example.com"))
- );
- $queryString = Braintree_TestHelper::submitTrRequest(
- Braintree_TransparentRedirect::url(),
- $params,
- $trData
- );
- $result = Braintree_TransparentRedirect::confirm($queryString);
- $this->assertTrue($result->success);
- $customer = $result->customer;
- $this->assertequals('Second', $customer->firstName);
- $this->assertequals('Penultimate', $customer->lastName);
- }
- function testUpdateCustomerFromTransparentRedirect()
- {
- $customer = Braintree_Customer::create(array(
- 'firstName' => 'Mike',
- 'lastName' => 'Jonez'
- ))->customer;
- $params = array(
- 'customer' => array(
- 'first_name' => 'Second'
- )
- );
- $trParams = array(
- 'customerId' => $customer->id,
- 'customer' => array(
- 'lastName' => 'Penultimate'
- )
- );
- $trData = Braintree_TransparentRedirect::updateCustomerData(
- array_merge($trParams, array("redirectUrl" => "http://www.example.com"))
- );
- $queryString = Braintree_TestHelper::submitTrRequest(
- Braintree_TransparentRedirect::url(),
- $params,
- $trData
- );
- $result = Braintree_TransparentRedirect::confirm($queryString);
- $this->assertTrue($result->success);
- $customer = $result->customer;
- $this->assertequals('Second', $customer->firstName);
- $this->assertequals('Penultimate', $customer->lastName);
- }
- function testCreateCreditCardFromTransparentRedirect()
- {
- $customer = Braintree_Customer::create(array(
- 'firstName' => 'Mike',
- 'lastName' => 'Jonez'
- ))->customer;
- $params = array(
- 'credit_card' => array(
- 'number' => Braintree_Test_CreditCardNumbers::$visa
- )
- );
- $trParams = array(
- 'creditCard' => array(
- 'customerId' => $customer->id,
- 'expirationMonth' => '01',
- 'expirationYear' => '10'
- )
- );
- $trData = Braintree_TransparentRedirect::createCreditCardData(
- array_merge($trParams, array("redirectUrl" => "http://www.example.com"))
- );
- $queryString = Braintree_TestHelper::submitTrRequest(
- Braintree_TransparentRedirect::url(),
- $params,
- $trData
- );
- $result = Braintree_TransparentRedirect::confirm($queryString);
- $this->assertTrue($result->success);
- $creditCard = $result->creditCard;
- $this->assertequals('401288', $creditCard->bin);
- $this->assertequals('1881', $creditCard->last4);
- $this->assertequals('01/2010', $creditCard->expirationDate);
- }
- function testUpdateCreditCardFromTransparentRedirect()
- {
- $customer = Braintree_Customer::create(array(
- 'firstName' => 'Mike',
- 'lastName' => 'Jonez'
- ))->customer;
- $creditCard = Braintree_CreditCard::create(array(
- 'customerId' => $customer->id,
- 'number' => Braintree_Test_CreditCardNumbers::$masterCard,
- 'expirationMonth' => '10',
- 'expirationYear' => '10'
- ))->creditCard;
- $params = array(
- 'credit_card' => array(
- 'number' => Braintree_Test_CreditCardNumbers::$visa
- )
- );
- $trParams = array(
- 'paymentMethodToken' => $creditCard->token,
- 'creditCard' => array(
- 'expirationMonth' => '11',
- 'expirationYear' => '11'
- )
- );
- $trData = Braintree_TransparentRedirect::updateCreditCardData(
- array_merge($trParams, array("redirectUrl" => "http://www.example.com"))
- );
- $queryString = Braintree_TestHelper::submitTrRequest(
- Braintree_TransparentRedirect::url(),
- $params,
- $trData
- );
- Braintree_TransparentRedirect::confirm($queryString);
- $creditCard = Braintree_CreditCard::find($creditCard->token);
- $this->assertequals('401288', $creditCard->bin);
- $this->assertequals('1881', $creditCard->last4);
- $this->assertequals('11/2011', $creditCard->expirationDate);
- }
- function testUrl()
- {
- $url = Braintree_TransparentRedirect::url();
- $developmentPort = getenv("GATEWAY_PORT") ? getenv("GATEWAY_PORT") : 3000;
- $this->assertEquals("http://localhost:" . $developmentPort . "/merchants/integration_merchant_id/transparent_redirect_requests", $url);
- }
- }
- ?>