riainvoice/vendor_old/omnipay/authorizenet/tests/Message/DPMPurchaseRequestTest.php
2021-10-01 23:56:38 +05:30

89 lines
2.6 KiB
PHP

<?php
namespace Omnipay\AuthorizeNet\Message;
use Omnipay\Tests\TestCase;
class DPMPurchaseRequestTest extends TestCase
{
public function setUp()
{
// The card for DPM will always start out blank, so remove the card details.
$validCard = array_merge(
$this->getValidCard(),
array(
'number' => '',
'expiryMonth' => '',
'expiryYear' => '',
'cvv' => '',
)
);
$this->request = new DPMPurchaseRequest($this->getHttpClient(), $this->getHttpRequest());
$this->request->initialize(
array(
'clientIp' => '10.0.0.1',
'amount' => '12.00',
'customerId' => 'cust-id',
'card' => $validCard,
'returnUrl' => 'https://www.example.com/return',
'liveEndpoint' => 'https://secure.authorize.net/gateway/transact.dll',
'developerEndpoint' => 'https://test.authorize.net/gateway/transact.dll',
)
);
}
public function testGetData()
{
$data = $this->request->getData();
$this->assertSame('AUTH_CAPTURE', $data['x_type']);
$this->assertSame('10.0.0.1', $data['x_customer_ip']);
$this->assertSame('cust-id', $data['x_cust_id']);
$this->assertSame('', $data['x_card_num']);
$this->assertSame('', $data['x_exp_date']);
$this->assertSame('', $data['x_card_code']);
$this->assertArrayNotHasKey('x_test_request', $data);
}
public function testGetDataTestMode()
{
$this->request->setTestMode(true);
$data = $this->request->getData();
$this->assertSame('TRUE', $data['x_test_request']);
}
public function testGetHash()
{
$this->request->setApiLoginId('user');
$this->request->setTransactionKey('key');
$data = array(
'x_fp_sequence' => 'a',
'x_fp_timestamp' => 'b',
'x_amount' => 'c',
);
$expected = hash_hmac('md5', 'user^a^b^c^', 'key');
$this->assertSame($expected, $this->request->getHash($data));
}
public function testSend()
{
$response = $this->request->send();
$this->assertFalse($response->isSuccessful());
$this->assertTrue($response->isRedirect());
$this->assertNotEmpty($response->getRedirectUrl());
$this->assertSame('POST', $response->getRedirectMethod());
$redirectData = $response->getRedirectData();
$this->assertSame('https://www.example.com/return', $redirectData['x_relay_url']);
}
}