104 lines
2.5 KiB
PHP
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),
|
|
);
|
|
}
|
|
}
|