Files
triagungbiantoro 417b7b7453
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m27s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 31s
Build, Push and Deploy / deploy-production (push) Has been skipped
harga pada beranda terhubung ke manage plans di dashboard admin
2026-04-25 21:57:25 +07:00

249 lines
8.0 KiB
PHP
Executable File

<?php
namespace Tests;
class CustomerTest extends BaseTestCase
{
/**
* Should return array of FedaPay\Customer
*/
public function testShouldReturnCustomers()
{
$body = [
'v1/customers' => [[
'id' => 1,
'klass' => 'v1/customer',
'firstname' => 'John',
'lastname' => 'Doe',
'email' => 'john.doe@example.com',
'phone' => '22967666776',
'created_at' => '2018-03-12T09:09:03.969Z',
'updated_at' => '2018-03-12T09:09:03.969Z'
]],
'meta' => ['page' => 1]
];
$this->mockRequest('get', '/v1/customers', [], $body);
$object = \FedaPay\Customer::all();
$this->assertTrue(is_array($object->customers));
$this->assertInstanceOf(\FedaPay\FedaPayObject::class, $object);
$this->assertInstanceOf(\FedaPay\FedaPayObject::class, $object->meta);
$this->assertInstanceOf(\FedaPay\Customer::class, $object->customers[0]);
$this->assertEquals('John', $object->customers[0]->firstname);
$this->assertEquals('Doe', $object->customers[0]->lastname);
$this->assertEquals('john.doe@example.com', $object->customers[0]->email);
$this->assertEquals('22967666776', $object->customers[0]->phone);
}
/**
* Should return array of FedaPay\Customer
*/
public function testCustomerCreationShouldFailed()
{
$data = ['firstname' => 'Myfirstname'];
$body = [
'message' => 'Account creation failed',
'errors' => [
'lastname' => ['lastname field required']
]
];
$this->mockRequest('post', '/v1/customers', $data, $body, 500);
try {
\FedaPay\Customer::create($data);
} catch (\FedaPay\Error\ApiConnection $e) {
$this->assertTrue($e->hasErrors());
$this->assertNotNull($e->getErrorMessage());
$errors = $e->getErrors();
$this->assertArrayHasKey('lastname', $errors);
}
}
/**
* Should return array of FedaPay\Customer
*/
public function testShouldCreateACustomer()
{
$data = [
'firstname' => 'John',
'lastname' => 'Doe',
'email' => 'john.doe@example.com',
'phone' => '+22966000001'
];
$body = [
'v1/customer' => [
'id' => 1,
'klass' => 'v1/customer',
'firstname' => $data['firstname'],
'lastname' => $data['lastname'],
'email' => $data['email'],
'phone' => $data['phone'],
'created_at' => '2018-03-12T09:09:03.969Z',
'updated_at' => '2018-03-12T09:09:03.969Z'
]
];
$this->mockRequest('post', '/v1/customers', $data, $body);
$customer = \FedaPay\Customer::create($data);
$this->assertInstanceOf(\FedaPay\Customer::class, $customer);
$this->assertEquals($customer->firstname, $data['firstname']);
$this->assertEquals($customer->lastname, $data['lastname']);
$this->assertEquals($customer->email, $data['email']);
$this->assertEquals($customer->phone, $data['phone']);
$this->assertEquals($customer->id, 1);
}
/**
* Should retrieve a Customer
*/
public function testShouldRetrievedACustomer()
{
$data = [
'firstname' => 'John',
'lastname' => 'Doe',
'email' => 'john.doe@exemple.com',
'phone' => '+2296600000001'
];
$body = [
'v1/customer' => [
'id' => 1,
'klass' => 'v1/customer',
'firstname' => $data['firstname'],
'lastname' => $data['lastname'],
'email' => $data['email'],
'phone' => $data['phone'],
'created_at' => '2018-03-12T09:09:03.969Z',
'updated_at' => '2018-03-12T09:09:03.969Z'
]
];
$this->mockRequest('get', '/v1/customers/1', [], $body);
$customer = \FedaPay\Customer::retrieve(1);
$this->assertInstanceOf(\FedaPay\Customer::class, $customer);
$this->assertEquals($customer->firstname, $data['firstname']);
$this->assertEquals($customer->lastname, $data['lastname']);
$this->assertEquals($customer->email, $data['email']);
$this->assertEquals($customer->phone, $data['phone']);
$this->assertEquals($customer->id, 1);
}
/**
* Should update a customer
*/
public function testShouldUpdateACustomer()
{
$data = [
'firstname' => 'John',
'lastname' => 'Doe',
'email' => 'john.doe@exemple.com',
'phone' => '+2296600000001'
];
$body = [
'v1/customer' => [
'id' => 1,
'klass' => 'v1/customer',
'firstname' => $data['firstname'],
'lastname' => $data['lastname'],
'email' => $data['email'],
'phone' => $data['phone'],
'created_at' => '2018-03-12T09:09:03.969Z',
'updated_at' => '2018-03-12T09:09:03.969Z'
]
];
$this->mockRequest('put', '/v1/customers/1', $data, $body);
$customer = \FedaPay\Customer::update(1, $data);
$this->assertInstanceOf(\FedaPay\Customer::class, $customer);
$this->assertEquals($customer->firstname, $data['firstname']);
$this->assertEquals($customer->lastname, $data['lastname']);
$this->assertEquals($customer->email, $data['email']);
$this->assertEquals($customer->phone, $data['phone']);
$this->assertEquals($customer->id, 1);
}
/**
* Should update a customer with save
*/
public function testShouldUpdateACustomerWithSave()
{
$data = [
'firstname' => 'John',
'lastname' => 'Doe',
'email' => 'john.doe@exemple.com',
'phone' => '+2296600000001'
];
$body = [
'v1/customer' => [
'id' => 1,
'klass' => 'v1/customer',
'firstname' => $data['firstname'],
'lastname' => $data['lastname'],
'email' => $data['email'],
'phone' => $data['phone'],
'created_at' => '2018-03-12T09:09:03.969Z',
'updated_at' => '2018-03-12T09:09:03.969Z'
]
];
$this->mockRequest('post', '/v1/customers', $data, $body);
$customer = \FedaPay\Customer::create($data);
$customer->firstname = 'First name';
$updateData = [
'klass' => 'v1/customer',
'firstname' => 'First name',
'lastname' => $data['lastname'],
'email' => $data['email'],
'phone' => $data['phone'],
'created_at' => '2018-03-12T09:09:03.969Z',
'updated_at' => '2018-03-12T09:09:03.969Z'
];
$this->mockRequest('put', '/v1/customers/1', $updateData, $body);
$customer->save();
}
/**
* Should delete a customer
*/
public function testShouldDeleteACustomer()
{
$data = [
'firstname' => 'John',
'lastname' => 'Doe',
'email' => 'john.doe@exemple.com',
'phone' => '+2296600000001'
];
$body = [
'v1/customer' => [
'id' => 1,
'klass' => 'v1/customer',
'firstname' => $data['firstname'],
'lastname' => $data['lastname'],
'email' => $data['email'],
'phone' => $data['phone'],
'created_at' => '2018-03-12T09:09:03.969Z',
'updated_at' => '2018-03-12T09:09:03.969Z'
]
];
$this->mockRequest('post', '/v1/customers', $data, $body);
$customer = \FedaPay\Customer::create($data);
$this->mockRequest('delete', '/v1/customers/1');
$customer->delete();
}
}