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

97 lines
3.2 KiB
PHP

<?php
namespace Omnipay\AuthorizeNet;
use Omnipay\Tests\TestCase;
/**
* Integration tests for the AIM Gateway. These tests make real requests to Authorize.NET sandbox environment.
*
* In order to run, these tests require your Authorize.NET sandbox credentials without which, they just skip. Configure
* the following environment variables:
*
* 1. AUTHORIZE_NET_API_LOGIN_ID
* 2. AUTHORIZE_NET_TRANSACTION_KEY
*
* Once configured, the tests will no longer skip.
*/
class AIMGatewayIntegrationTest extends TestCase
{
/** @var AIMGateway */
protected $gateway;
public function setUp()
{
parent::setUp();
$apiLoginId = getenv('AUTHORIZE_NET_API_LOGIN_ID');
$transactionKey = getenv('AUTHORIZE_NET_TRANSACTION_KEY');
if ($apiLoginId && $transactionKey) {
$this->gateway = new AIMGateway($this->getHttpClient(), $this->getHttpRequest());
$this->gateway->setDeveloperMode(true);
$this->gateway->setApiLoginId($apiLoginId);
$this->gateway->setTransactionKey($transactionKey);
} else {
// No credentials were found, so skip this test
$this->markTestSkipped();
}
}
public function testAuthCaptureVoid()
{
// Authorize
$request = $this->gateway->authorize(array(
'amount' => '42.42',
'card' => $this->getValidCard()
));
$response = $request->send();
$this->assertTrue($response->isSuccessful(), 'Authorization should succeed');
$transactionRef = $response->getTransactionReference();
// Capture
$request = $this->gateway->capture(array(
'amount' => '42.42',
'transactionReference' => $transactionRef
));
$response = $request->send();
$this->assertTrue($response->isSuccessful(), 'Capture should succeed');
// Void
$request = $this->gateway->void(array(
'transactionReference' => $transactionRef
));
$response = $request->send();
$this->assertTrue($response->isSuccessful(), 'Void should succeed');
}
public function testPurchaseRefundAutoVoid()
{
// Purchase
$request = $this->gateway->purchase(array(
'amount' => 10.01,
'card' => $this->getValidCard()
));
$response = $request->send();
$this->assertTrue($response->isSuccessful(), 'Purchase should succeed');
$transactionRef = $response->getTransactionReference();
// Refund (should fail)
$request = $this->gateway->refund(array(
'transactionReference' => $transactionRef,
'amount' => 10.01
));
$response = $request->send();
$this->assertFalse($response->isSuccessful(), 'Refund should fail since the transaction has not been settled');
// Refund with auto-void
$request = $this->gateway->refund(array(
'transactionReference' => $transactionRef,
'amount' => 10.01,
'voidIfRefundFails' => true
));
$response = $request->send();
$this->assertTrue($response->isSuccessful(), 'Automatic void should succeed');
}
}