![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/job-board.corals.io/vendor/xendit/xendit-php/tests/Xendit/ |
<?php /** * DisbursementsTest.php * php version 7.2.0 * * @category Test * @package Xendit * @author Ellen <[email protected]> * @license https://opensource.org/licenses/MIT MIT License * @link https://api.xendit.co */ use Xendit\Disbursements; use Xendit\TestCase; /** * Class DisbursementsTest * * @category Class * @package Xendit * @author Ellen <[email protected]> * @license https://opensource.org/licenses/MIT MIT License * @link https://api.xendit.co */ class DisbursementsTest extends TestCase { const TEST_ID = "123"; const CHANNEL_CATEGORY = "BANK"; const CHANNEL_CODE = "PH_CIMB"; /** * Create Disbursements test * Should pass * * @return void */ public function testIsCreatable() { $params = [ 'external_id' => 'disb-12345678', 'amount' => 15000, 'bank_code' => 'BCA', 'account_holder_name' => 'Joe', 'account_number' => '1234567890', 'description' => 'Disbursement from Example' ]; $this->stubRequest( 'POST', '/disbursements', $params, [], $params ); $result = Disbursements::create($params); $this->assertEquals($result['external_id'], $params['external_id']); $this->assertEquals($result['amount'], $params['amount']); $this->assertEquals($result['bank_code'], $params['bank_code']); $this->assertEquals( $result['account_holder_name'], $params['account_holder_name'] ); $this->assertEquals($result['account_number'], $params['account_number']); $this->assertEquals($result['description'], $params['description']); } /** * Create Batch Disbursements test * Should pass * * @return void * @throws \Xendit\Exceptions\ApiException */ public function testIsBatchCreatable() { $params = [ 'reference' => 'disb_batch-12345678', 'disbursements' => [ [ 'amount' => 20000, 'bank_code' => 'BCA', 'bank_account_name' => 'Fadlan', 'bank_account_number' => '1234567890', 'description' => 'Batch Disbursement', 'external_id' => 'disbursement-1' ], [ 'amount' => 30000, 'bank_code' => 'MANDIRI', 'bank_account_name' => 'Lutfi', 'bank_account_number' => '1234567891', 'description' => 'Batch Disbursement with email notifications', 'external_id' => 'disbursement-2', 'email_to' => ['[email protected]'], 'email_cc' => ['[email protected]'], 'email_bcc' => ['[email protected]', '[email protected]'] ] ] ]; $this->stubRequest( 'POST', '/batch_disbursements', $params, [], $params ); $result = Disbursements::createBatch($params); $this->assertEquals($result['reference'], $params['reference']); $this->assertEquals($result['disbursements'], $params['disbursements']); } /** * Get DisbursementsBanks test * Should pass * * @return void * @throws \Xendit\Exceptions\ApiException */ public function testBanksIsGettable() { $expectedResponse = [[ 'name' => 'Bank Mandiri', 'code' => 'MANDIRI', 'can_disburse' => true, 'can_name_validate' => true ]]; $this->stubRequest( 'GET', '/available_disbursements_banks', [], [], $expectedResponse ); $result = Disbursements::getAvailableBanks(); $this->assertEquals($result[0]['name'], $expectedResponse[0]['name']); $this->assertEquals($result[0]['code'], $expectedResponse[0]['code']); $this->assertEquals( $result[0]['can_disburse'], $expectedResponse[0]['can_disburse'] ); $this->assertEquals( $result[0]['can_name_validate'], $expectedResponse[0]['can_name_validate'] ); } /** * Get Disbursements by ID test * Should pass * * @return void */ public function testIsGettableByID() { $this->stubRequest( 'GET', '/disbursements/' . self::TEST_ID, [], [], [ 'id' => self::TEST_ID ] ); $result = Disbursements::retrieve(self::TEST_ID); $this->assertEquals($result['id'], self::TEST_ID); } /** * Get Disbursements by External ID test * Should pass * * @return void * @throws \Xendit\Exceptions\ApiException */ public function testIsGettableByExternalID() { $this->stubRequest( 'GET', '/disbursements?external_id=' . self::TEST_ID, [], [], [ 'id' => self::TEST_ID ] ); $result = Disbursements::retrieveExternal(self::TEST_ID); $this->assertEquals($result['id'], self::TEST_ID); } /** * Create Disbursements test * Should throw InvalidArgumentException * * @return void */ public function testIsCreatableThrowInvalidArgumentException() { $this->expectException(\Xendit\Exceptions\InvalidArgumentException::class); $params = [ 'external_id' => 'demo_147580196270' ]; Disbursements::create($params); } /** * Create Batchs Disbursements test * Should throw InvalidArgumentException * * @return void * @throws \Xendit\Exceptions\ApiException */ public function testIsBatchCreatableThrowInvalidArgumentException() { $this->expectException(\Xendit\Exceptions\InvalidArgumentException::class); $params = [ 'external_id' => 'demo_147580196270' ]; Disbursements::createBatch($params); } /** * Get Disbursements by ID test * Should throw ApiException * * @return void */ public function testIsGettableByIDThrowApiException() { $this->expectException(\Xendit\Exceptions\ApiException::class); Disbursements::retrieve(self::TEST_ID); } /** * Get Disbursements by External ID test * Should throw ApiException * * @return void * @throws \Xendit\Exceptions\ApiException */ public function testIsGettableByExtIDThrowApiException() { $this->expectException(\Xendit\Exceptions\ApiException::class); Disbursements::retrieveExternal(self::TEST_ID); } }