336 lines
11 KiB
PHP
Executable File
336 lines
11 KiB
PHP
Executable File
<?php
|
|
|
|
namespace Tests;
|
|
|
|
use Faker\Factory;
|
|
|
|
class PageTest extends BaseTestCase
|
|
{
|
|
/**
|
|
* Should return array of FedaPay\Page
|
|
*/
|
|
// public function testShouldReturnPages()
|
|
// {
|
|
// $body = [
|
|
// 'v1/pages' => [[
|
|
// 'id' => 2,
|
|
// 'klass' => 'v1/page',
|
|
// 'name' => 'super Admin',
|
|
// 'reference' => 'v_hZUvFT',
|
|
// 'description' => 'fdfd',
|
|
// 'amount' => 0,
|
|
// 'published' => true,
|
|
// 'enable_phone_number' => false,
|
|
// 'callback_url' => null,
|
|
// 'image_url' => null,
|
|
// 'custom_fields' => [],
|
|
// 'currency' => [
|
|
// 'klass' => 'v1/currency',
|
|
// 'id' => 1,
|
|
// 'klass' => 'v1/currency',
|
|
// 'name' => 'FCFA',
|
|
// 'iso' => 'XOF',
|
|
// 'code' => 952,
|
|
// 'prefix' => null,
|
|
// 'suffix' => 'CFA',
|
|
// 'div' => 1,
|
|
// 'created_at' => '2018-03-12T09:09:03.969Z',
|
|
// 'updated_at' => '2018-03-12T09:09:03.969Z'
|
|
// ]
|
|
// ]],
|
|
// 'meta' => [
|
|
// 'current_page' => 1,
|
|
// 'next_page' => null,
|
|
// 'prev_page' => null,
|
|
// 'total_pages' => 1,
|
|
// 'total_count' => 1,
|
|
// 'per_page' => 25,
|
|
// ]
|
|
// ];
|
|
|
|
// $this->mockRequest('get', '/v1/pages', [], $body);
|
|
|
|
// $object = \FedaPay\Page::all();
|
|
|
|
// $this->assertTrue(is_array($object->pages));
|
|
// $this->assertInstanceOf(\FedaPay\FedaPayObject::class, $object);
|
|
// $this->assertInstanceOf(\FedaPay\FedaPayObject::class, $object->meta);
|
|
// $this->assertInstanceOf(\FedaPay\Page::class, $object->pages[0]);
|
|
// $this->assertEquals('super Admin', $object->pages[0]->name);
|
|
// $this->assertEquals('v_hZUvFT', $object->pages[0]->reference);
|
|
// $this->assertEquals('fdfd', $object->pages[0]->description);
|
|
// $this->assertInstanceOf(\FedaPay\FedaPayObject::class, $object->pages[0]->currency);
|
|
// }
|
|
|
|
// /**
|
|
// * Should faild creating the page
|
|
// */
|
|
// public function testPageCreationShouldFailed()
|
|
// {
|
|
// $data = [
|
|
// 'name' => 'Myname',
|
|
// 'description' => 'My description'
|
|
// ];
|
|
|
|
// $body = [
|
|
// 'message' => 'Page creation failed',
|
|
// 'errors' => [
|
|
// 'description' => ['description field required']
|
|
// ]
|
|
// ];
|
|
|
|
// $this->mockRequest('post', '/v1/pages', $data, $body, 500);
|
|
|
|
// try {
|
|
// \FedaPay\Page::create($data);
|
|
// } catch (\FedaPay\Error\ApiConnection $e) {
|
|
// $this->assertTrue($e->hasErrors());
|
|
// $this->assertNotNull($e->getErrorMessage());
|
|
// $errors = $e->getErrors();
|
|
// $this->assertArrayHasKey('description', $errors);
|
|
// }
|
|
// }
|
|
|
|
// /**
|
|
// * Should create a page
|
|
// */
|
|
// public function testShouldCreateAPage()
|
|
// {
|
|
// $data = [
|
|
// 'name' => 'Page name',
|
|
// 'reference' => 'page-reference',
|
|
// 'description' => 'Page description',
|
|
// 'currency_id' => 1
|
|
// ];
|
|
|
|
// $body = [
|
|
// 'v1/page' => [
|
|
// 'id' => 1,
|
|
// 'klass' => 'v1/page',
|
|
// 'name' => $data['name'],
|
|
// 'reference' => $data['reference'],
|
|
// 'description' => $data['description'],
|
|
// 'created_at' => '2019-11-19T10:19:03.969Z',
|
|
// 'updated_at' => '2019-11-19T10:19:03.969Z'
|
|
// ]
|
|
// ];
|
|
// $this->mockRequest('post', '/v1/pages', $data, $body);
|
|
|
|
// $page = \FedaPay\Page::create($data);
|
|
// $this->assertInstanceOf(\FedaPay\Page::class, $page);
|
|
// $this->assertEquals($page->name, $data['name']);
|
|
// $this->assertEquals($page->reference, $data['reference']);
|
|
// $this->assertEquals($page->description, $data['description']);
|
|
// $this->assertEquals($page->id, 1);
|
|
// }
|
|
|
|
// /**
|
|
// * Should retrieve a Page
|
|
// */
|
|
// public function testShouldRetrievedAPage()
|
|
// {
|
|
// $data = [
|
|
// 'name' => 'Page name',
|
|
// 'reference' => 'page-reference',
|
|
// 'description' => 'Page description',
|
|
// 'currency_id' => 1
|
|
// ];
|
|
|
|
// $body = [
|
|
// 'v1/page' => [
|
|
// 'id' => 1,
|
|
// 'klass' => 'v1/page',
|
|
// 'name' => $data['name'],
|
|
// 'reference' => $data['reference'],
|
|
// 'description' => $data['description'],
|
|
// 'created_at' => '2019-11-19T10:19:03.969Z',
|
|
// 'updated_at' => '2019-11-19T10:19:03.969Z'
|
|
// ]
|
|
// ];
|
|
|
|
// $this->mockRequest('get', '/v1/pages/1', [], $body);
|
|
|
|
// $page = \FedaPay\Page::retrieve(1);
|
|
|
|
// $this->assertInstanceOf(\FedaPay\Page::class, $page);
|
|
// $this->assertEquals($page->name, $data['name']);
|
|
// $this->assertEquals($page->reference, $data['reference']);
|
|
// $this->assertEquals($page->description, $data['description']);
|
|
// $this->assertEquals($page->id, 1);
|
|
// }
|
|
|
|
// /**
|
|
// * Should update a page
|
|
// */
|
|
// public function testShouldUpdateAPage()
|
|
// {
|
|
// $data = [
|
|
// 'name' => 'Page name',
|
|
// 'reference' => 'page-reference',
|
|
// 'description' => 'Page description',
|
|
// 'currency_id' => 1
|
|
// ];
|
|
|
|
// $body = [
|
|
// 'v1/page' => [
|
|
// 'id' => 1,
|
|
// 'klass' => 'v1/page',
|
|
// 'name' => $data['name'],
|
|
// 'reference' => $data['reference'],
|
|
// 'description' => $data['description'],
|
|
// 'created_at' => '2019-11-19T10:19:03.969Z',
|
|
// 'updated_at' => '2019-11-19T10:19:03.969Z'
|
|
// ]
|
|
// ];
|
|
|
|
// $this->mockRequest('put', '/v1/pages/1', $data, $body);
|
|
|
|
// $page = \FedaPay\Page::update(1, $data);
|
|
|
|
// $this->assertInstanceOf(\FedaPay\Page::class, $page);
|
|
// $this->assertEquals($page->name, $data['name']);
|
|
// $this->assertEquals($page->reference, $data['reference']);
|
|
// $this->assertEquals($page->description, $data['description']);
|
|
// $this->assertEquals($page->id, 1);
|
|
// }
|
|
|
|
// /**
|
|
// * Should update a page with save
|
|
// */
|
|
// public function testShouldUpdateAPageWithSave()
|
|
// {
|
|
// $data = [
|
|
// 'name' => 'Page name',
|
|
// 'reference' => 'page-reference',
|
|
// 'description' => 'Page description',
|
|
// 'currency_id' => 1
|
|
// ];
|
|
|
|
// $body = [
|
|
// 'v1/page' => [
|
|
// 'id' => 1,
|
|
// 'klass' => 'v1/page',
|
|
// 'name' => $data['name'],
|
|
// 'reference' => $data['reference'],
|
|
// 'description' => $data['description'],
|
|
// 'created_at' => '2019-11-19T10:19:03.969Z',
|
|
// 'updated_at' => '2019-11-19T10:19:03.969Z'
|
|
// ]
|
|
// ];
|
|
|
|
// $this->mockRequest('post', '/v1/pages', $data, $body);
|
|
|
|
// $page = \FedaPay\Page::create($data);
|
|
// $page->name = 'New name';
|
|
// $updateData = [
|
|
// 'klass' => 'v1/page',
|
|
// 'name' => 'New name',
|
|
// 'reference' => $data['reference'],
|
|
// 'description' => $data['description'],
|
|
// 'created_at' => '2019-11-19T10:19:03.969Z',
|
|
// 'updated_at' => '2019-11-19T10:19:03.969Z'
|
|
// ];
|
|
|
|
// $this->mockRequest('put', '/v1/pages/1', $updateData, $body);
|
|
// $page->save();
|
|
// }
|
|
|
|
// /**
|
|
// * Should delete a page
|
|
// */
|
|
// public function testShouldDeleteAPage()
|
|
// {
|
|
// $data = [
|
|
// 'name' => 'Page name',
|
|
// 'reference' => 'page-reference',
|
|
// 'description' => 'Page description',
|
|
// 'currency_id' => 1
|
|
// ];
|
|
|
|
// $body = [
|
|
// 'v1/page' => [
|
|
// 'id' => 1,
|
|
// 'klass' => 'v1/page',
|
|
// 'name' => $data['name'],
|
|
// 'reference' => $data['reference'],
|
|
// 'description' => $data['description'],
|
|
// 'created_at' => '2019-11-19T10:19:03.969Z',
|
|
// 'updated_at' => '2019-11-19T10:19:03.969Z'
|
|
// ]
|
|
// ];
|
|
|
|
// $this->mockRequest('post', '/v1/pages', $data, $body);
|
|
// $page = \FedaPay\Page::create($data);
|
|
|
|
// $this->mockRequest('delete', '/v1/pages/1');
|
|
|
|
// $page->delete();
|
|
// }
|
|
|
|
public function testShouldVerifyPage()
|
|
{
|
|
$data = [
|
|
'name' => 'Page name',
|
|
'reference' => 'page-reference',
|
|
'description' => 'Page description',
|
|
'currency_id' => 1
|
|
];
|
|
|
|
$body = [
|
|
'v1/page' => [
|
|
'id' => 1,
|
|
'klass' => 'v1/page',
|
|
'name' => $data['name'],
|
|
'reference' => $data['reference'],
|
|
'description' => $data['description'],
|
|
'created_at' => '2019-11-19T10:19:03.969Z',
|
|
'updated_at' => '2019-11-19T10:19:03.969Z'
|
|
]
|
|
];
|
|
|
|
$this->mockRequest('post', '/v1/pages', $data, $body);
|
|
$page = \FedaPay\Page::create($data);
|
|
|
|
$body = [
|
|
'v1/page_verify' => [
|
|
'page' => [
|
|
'id' => 1,
|
|
'klass' => 'v1/page',
|
|
'name' => $data['name'],
|
|
'reference' => $data['reference'],
|
|
'description' => $data['description'],
|
|
'created_at' => '2019-11-19T10:19:03.969Z',
|
|
'updated_at' => '2019-11-19T10:19:03.969Z'
|
|
],
|
|
'sesstings' => []
|
|
]
|
|
];
|
|
|
|
$this->mockRequest('get', '/v1/pages/' . $data['reference'] . '/verify', [], $body);
|
|
$object = $page->verify($data['reference']);
|
|
$this->assertInstanceOf(\FedaPay\Page::class, $object->page);
|
|
}
|
|
|
|
public function testShouldGetLightPage()
|
|
{
|
|
$body = [
|
|
'v1/page' => [
|
|
'id' => 1,
|
|
'klass' => 'v1/page',
|
|
'name' => 'Page name',
|
|
'reference' => 'XOOO',
|
|
'description' => 'Page description',
|
|
'created_at' => '2019-11-19T10:19:03.969Z',
|
|
'updated_at' => '2019-11-19T10:19:03.969Z'
|
|
]
|
|
];
|
|
|
|
$this->mockRequest('get', '/v1/pages/XOOO/light', [], $body);
|
|
$page = \FedaPay\Page::light('XOOO');
|
|
$this->assertEquals($page->name, 'Page name');
|
|
$this->assertEquals($page->reference, 'XOOO');
|
|
$this->assertEquals($page->description, 'Page description');
|
|
$this->assertEquals($page->id, 1);
|
|
}
|
|
}
|