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

104 lines
2.5 KiB
PHP

<?php
namespace Omnipay\MultiSafepay\Message;
use Omnipay\Tests\TestCase;
class XmlFetchPaymentMethodsRequestTest extends TestCase
{
/**
* @var FetchPaymentMethodsRequest
*/
private $request;
protected function setUp()
{
$this->request = new FetchPaymentMethodsRequest(
$this->getHttpClient(),
$this->getHttpRequest()
);
$this->request->initialize(array(
'accountId' => '111111',
'siteId' => '222222',
'siteCode' => '333333',
'country' => 'NL',
));
}
/**
* @dataProvider paymentMethodsProvider
*/
public function testSendSuccess($expected)
{
$this->setMockHttpResponse('XmlFetchPaymentMethodsSuccess.txt');
$response = $this->request->send();
$this->assertTrue($response->isSuccessful());
$this->assertEquals($expected, $response->getPaymentMethods());
}
public function testSendFailure()
{
$this->setMockHttpResponse('XmlFetchPaymentMethodsFailure.txt');
$response = $this->request->send();
$this->assertFalse($response->isSuccessful());
$this->assertEquals('Invalid merchant security code', $response->getMessage());
$this->assertEquals(1005, $response->getCode());
}
/**
* @dataProvider dataProvider
*/
public function testGetData($xml)
{
$data = $this->request->getData();
$this->assertInstanceOf('SimpleXMLElement', $data);
// Just so the provider remains readable...
$dom = dom_import_simplexml($data)->ownerDocument;
$dom->formatOutput = true;
$this->assertEquals($xml, $dom->saveXML());
}
public function paymentMethodsProvider()
{
return array(
array(
array(
'VISA' => 'Visa CreditCards',
'WALLET' => 'MultiSafepay',
'IDEAL' => 'iDEAL',
'BANKTRANS' => 'Bank Transfer',
'MASTERCARD' => 'MasterCard',
),
),
);
}
public function dataProvider()
{
$xml = <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<gateways ua="Omnipay">
<merchant>
<account>111111</account>
<site_id>222222</site_id>
<site_secure_code>333333</site_secure_code>
</merchant>
<customer>
<country>NL</country>
</customer>
</gateways>
EOF;
return array(
array($xml),
);
}
}