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

202 lines
7.5 KiB
PHP

<?php
namespace Omnipay\NetBanx;
use Omnipay\Common\CreditCard;
use Omnipay\NetBanx\Message\HostedPurchaseResponse;
use Omnipay\Tests\GatewayTestCase;
class HostedGatewayTest extends GatewayTestCase
{
protected $purchaseOptions;
public function setUp()
{
parent::setUp();
$this->gateway = new HostedGateway($this->getHttpClient(), $this->getHttpRequest());
$card = new CreditCard($this->getValidCard());
$card->setBillingAddress1('Wall street');
$card->setBillingAddress2('Wall street 2');
$card->setBillingCity('San Luis Obispo');
$card->setBillingCountry('US');
$card->setBillingPostcode('93401');
$card->setBillingPhone('1234567');
$card->setBillingState('CA');
$card->setShippingAddress1('Shipping Wall street');
$card->setShippingAddress2('Shipping Wall street 2');
$card->setShippingCity('San Luis Obispo');
$card->setShippingCountry('US');
$card->setShippingPostcode('93401');
$card->setShippingPhone('1234567');
$card->setShippingState('CA');
$card->setCompany('Test Business name');
$card->setEmail('test@example.com');
$this->purchaseOptions = array(
'amount' => '95.63',
'returnUrl' => 'https://www.example.com/return',
'cancelUrl' => 'https://www.example.com/cancel',
'currency' => 'GBP'
);
$this->completePurchaseOptions = array(
'transactionReference' => '284BRTAQFS63EOA1LD'
);
}
public function testPurchaseSuccess()
{
$this->setMockHttpResponse('HostedPurchaseSuccess.txt');
$request = $this->gateway->purchase($this->purchaseOptions);
$requestData = $request->getData();
/** @var HostedPurchaseResponse $response */
$response = $request->send();
$this->assertInstanceOf('\Omnipay\NetBanx\Message\HostedPurchaseRequest', $request);
// Test Request
$this->assertSame(9563, $requestData['totalAmount']);
$this->assertSame('GBP', $requestData['currencyCode']);
// Test response
$this->assertFalse($response->isSuccessful());
$this->assertTrue($response->isRedirect());
$this->assertFalse($response->isPending());
$this->assertSame('284BRTAQFS63EOA1LD', $response->getTransactionReference());
$this->assertNull($response->getCode());
$this->assertNull($response->getMessage());
$this->assertSame('https://pay.test.netbanx.com/hosted/v1/payment/53616c7465645f5f620e8e8fed4517d964208355a0b5dfb087d38e77f05aa00d9dbb3e7f9f379cb8',
$response->getRedirectUrl());
}
public function testPurchaseFailure()
{
$this->setMockHttpResponse('HostedPurchaseFailure.txt');
$request = $this->gateway->purchase($this->purchaseOptions);
$requestData = $request->getData();
/** @var HostedPurchaseResponse $response */
$response = $request->send();
// Test Request
$this->assertSame(9563, $requestData['totalAmount']);
$this->assertSame('GBP', $requestData['currencyCode']);
// Test response
$this->assertFalse($response->isPending());
$this->assertFalse($response->isSuccessful());
$this->assertFalse($response->isRedirect());
$this->assertSame('400', $response->getCode());
$this->assertSame('Duplicate merchant reference', $response->getMessage());
}
public function testAuthorizeSuccess()
{
$this->setMockHttpResponse('HostedPurchaseSuccess.txt');
$request = $this->gateway->authorize($this->purchaseOptions);
$this->assertInstanceOf('\Omnipay\NetBanx\Message\HostedAuthorizeRequest', $request);
$requestData = $request->getData();
/** @var HostedPurchaseResponse $response */
$response = $request->send();
$extendedOptions = array(
array('key' => 'emailNotEditable', 'value' => true),
array('key' => 'authType', 'value' => 'auth')
);
// Test Request
$this->assertSame($extendedOptions, $requestData['extendedOptions']);
$this->assertSame(9563, $requestData['totalAmount']);
$this->assertSame('GBP', $requestData['currencyCode']);
// Test response
$this->assertFalse($response->isSuccessful());
$this->assertTrue($response->isRedirect());
$this->assertFalse($response->isPending());
$this->assertSame('284BRTAQFS63EOA1LD', $response->getTransactionReference());
$this->assertNull($response->getCode());
$this->assertNull($response->getMessage());
$this->assertSame('https://pay.test.netbanx.com/hosted/v1/payment/53616c7465645f5f620e8e8fed4517d964208355a0b5dfb087d38e77f05aa00d9dbb3e7f9f379cb8',
$response->getRedirectUrl());
}
public function testAuthorizeFailure()
{
$this->setMockHttpResponse('HostedPurchaseFailure.txt');
$request = $this->gateway->purchase($this->purchaseOptions);
$requestData = $request->getData();
/** @var HostedPurchaseResponse $response */
$response = $request->send();
// Test Request
$this->assertSame(9563, $requestData['totalAmount']);
$this->assertSame('GBP', $requestData['currencyCode']);
// Test response
$this->assertFalse($response->isPending());
$this->assertFalse($response->isSuccessful());
$this->assertFalse($response->isRedirect());
$this->assertSame('400', $response->getCode());
}
public function testCompletePurchaseSuccess()
{
$this->setMockHttpResponse('HostedCompletePurchaseSuccess.txt');
$request = $this->gateway->completePurchase($this->completePurchaseOptions);
$this->assertInstanceOf('\Omnipay\NetBanx\Message\HostedCompletePurchaseRequest', $request);
/** @var \Omnipay\NetBanx\Message\HostedCompletePurchaseRequest $request */
$requestData = $request->getData();
$this->assertSame('284BRTAQFS63EOA1LD', $requestData['transactionReference']);
// Test response
/** @var \Omnipay\NetBanx\Message\HostedPurchaseResponse $response */
$response = $request->send();
$this->assertTrue($response->isSuccessful());
$this->assertFalse($response->isRedirect());
$this->assertFalse($response->isPending());
$this->assertSame('284BRTAQFS63EOA1LD', $response->getTransactionReference());
$this->assertNull($response->getCode());
$this->assertSame('361928800', $response->getMessage());
}
public function testCompleteAuthorizeSuccess()
{
$this->setMockHttpResponse('HostedCompleteAuthorizeSuccess.txt');
$request = $this->gateway->completePurchase($this->completePurchaseOptions);
$this->assertInstanceOf('\Omnipay\NetBanx\Message\HostedCompletePurchaseRequest', $request);
/** @var \Omnipay\NetBanx\Message\HostedCompletePurchaseRequest $request */
$requestData = $request->getData();
$this->assertSame('284BRTAQFS63EOA1LD', $requestData['transactionReference']);
// Test response
/** @var \Omnipay\NetBanx\Message\HostedPurchaseResponse $response */
$response = $request->send();
$this->assertTrue($response->isSuccessful());
$this->assertFalse($response->isRedirect());
$this->assertFalse($response->isPending());
$this->assertSame('284BRTAQFS63EOA1LD', $response->getTransactionReference());
$this->assertNull($response->getCode());
$this->assertSame('361928800', $response->getMessage());
}
}