92 lines
3.3 KiB
PHP
92 lines
3.3 KiB
PHP
<?php namespace Omnipay\MultiSafepay\Message;
|
|
|
|
use Omnipay\Tests\TestCase;
|
|
|
|
class RestPurchaseRequestTest extends TestCase
|
|
{
|
|
/**
|
|
* @var PurchaseRequest
|
|
*/
|
|
private $request;
|
|
|
|
protected function setUp()
|
|
{
|
|
$this->request = new RestPurchaseRequest(
|
|
$this->getHttpClient(),
|
|
$this->getHttpRequest()
|
|
);
|
|
|
|
$this->request->initialize(
|
|
array(
|
|
'apiKey' => '123456789',
|
|
'amount' => 10.00,
|
|
'currency' => 'eur',
|
|
'description' => 'Test transaction',
|
|
'cancel_url' => 'http://localhost/cancel',
|
|
'notify_url' => 'http://localhost/notify',
|
|
'return_url' => 'http://localhost/return',
|
|
'close_window' => false,
|
|
'days_active' => 3,
|
|
'send_mail' => true,
|
|
'gateway' => 'IDEAL',
|
|
'google_analytics_code' => '123456789',
|
|
'manual' => false,
|
|
'transactionId' => 'TEST-TRANS-1',
|
|
'type' => 'redirect',
|
|
'var1' => 'extra data 1',
|
|
'var2' => 'extra data 2',
|
|
'var3' => 'extra data 3',
|
|
)
|
|
);
|
|
}
|
|
|
|
public function testSendSuccess()
|
|
{
|
|
$this->setMockHttpResponse('RestPurchaseSuccess.txt');
|
|
|
|
$response = $this->request->send();
|
|
|
|
$this->assertFalse($response->isSuccessful());
|
|
$this->assertTrue($response->isRedirect());
|
|
|
|
$this->assertEquals(
|
|
'https://testpay.multisafepay.com/pay/?order_id=TEST-TRANS-1',
|
|
$response->getRedirectUrl()
|
|
);
|
|
|
|
$this->assertEquals('TEST-TRANS-1', $response->getTransactionId());
|
|
}
|
|
|
|
public function testInvalidAmount()
|
|
{
|
|
$this->setMockHttpResponse('RestPurchaseInvalidAmount.txt');
|
|
|
|
$response = $this->request->send();
|
|
|
|
$this->assertFalse($response->isSuccessful());
|
|
$this->assertEquals('Invalid amount', $response->getMessage());
|
|
$this->assertEquals(1001, $response->getCode());
|
|
}
|
|
|
|
public function testDataIntegrity()
|
|
{
|
|
$this->assertEquals('123456789', $this->request->getGoogleAnalyticsCode());
|
|
$this->assertEquals('EUR', $this->request->getCurrency());
|
|
$this->assertEquals('extra data 1', $this->request->getVar1());
|
|
$this->assertEquals('extra data 2', $this->request->getVar2());
|
|
$this->assertEquals('extra data 3', $this->request->getVar3());
|
|
$this->assertEquals('http://localhost/cancel', $this->request->getCancelUrl());
|
|
$this->assertEquals('http://localhost/notify', $this->request->getNotifyUrl());
|
|
$this->assertEquals('http://localhost/return', $this->request->getReturnUrl());
|
|
$this->assertEquals('IDEAL', $this->request->getGateway());
|
|
$this->assertEquals('redirect', $this->request->getType());
|
|
$this->assertEquals('Test transaction', $this->request->getDescription());
|
|
$this->assertEquals('TEST-TRANS-1', $this->request->getTransactionId());
|
|
$this->assertEquals(10.00, $this->request->getAmount());
|
|
$this->assertEquals(3, $this->request->getDaysActive());
|
|
$this->assertFalse($this->request->getCloseWindow());
|
|
$this->assertFalse($this->request->getManual());
|
|
$this->assertTrue($this->request->getSendMail());
|
|
}
|
|
}
|