mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-10-31 12:47:32 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			183 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			183 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Invoice Ninja (https=>//invoiceninja.com).
 | |
|  *
 | |
|  * @link https=>//github.com/invoiceninja/invoiceninja source repository
 | |
|  *
 | |
|  * @copyright Copyright (c) 2021. Invoice Ninja LLC (https=>//invoiceninja.com)
 | |
|  *
 | |
|  * @license https=>//www.elastic.co/licensing/elastic-license
 | |
|  */
 | |
| 
 | |
| namespace Tests\Integration\DTO;
 | |
| 
 | |
| use Tests\TestCase;
 | |
| 
 | |
| /**
 | |
|  * @test
 | |
|  */
 | |
| class AccountSummaryTest extends TestCase
 | |
| {
 | |
|     private $data = [
 | |
|       [
 | |
|         "CONTAINER" => "bank",
 | |
|         "providerAccountId" => 330,
 | |
|         "accountName" => "Business  Acct",
 | |
|         "accountStatus" => "ACTIVE",
 | |
|         "accountNumber" => "1012",
 | |
|         "aggregationSource" => "USER",
 | |
|         "isAsset" => true,
 | |
|         "balance" => [
 | |
|           "currency" => "AUD",
 | |
|           "amount" => 44.98,
 | |
|         ],
 | |
|         "id" => 19315,
 | |
|         "includeInNetWorth" => true,
 | |
|         "providerId" => "3857",
 | |
|         "providerName" => "Bank",
 | |
|         "isManual" => false,
 | |
|         "availableBalance" => [
 | |
|           "currency" => "AUD",
 | |
|           "amount" => 34.98,
 | |
|         ],
 | |
|         "currentBalance" => [
 | |
|           "currency" => "AUD",
 | |
|           "amount" => 344.98,
 | |
|         ],
 | |
|         "accountType" => "CHECKING",
 | |
|         "displayedName" => "after David",
 | |
|         "createdDate" => "2023-01-10T08=>29=>07Z",
 | |
|         "classification" => "",
 | |
|         "lastUpdated" => "2023-08-01T23=>50=>13Z",
 | |
|         "nickname" => "Busines Acct",
 | |
|         "bankTransferCode" => [
 | |
|           [
 | |
|             "id" => "062",
 | |
|             "type" => "BSB",
 | |
|           ],
 | |
|         ],
 | |
|         "dataset" => [
 | |
|           [
 | |
|             "name" => "BASIC_AGG_DATA",
 | |
|             "additionalStatus" => "AVAILABLE_DATA_RETRIEVED",
 | |
|             "updateEligibility" => "ALLOW_UPDATE",
 | |
|             "lastUpdated" => "2023-08-01T23=>49=>53Z",
 | |
|             "lastUpdateAttempt" => "2023-08-01T23=>49=>53Z",
 | |
|             "nextUpdateScheduled" => "2023-08-03T14=>45=>14Z",
 | |
|           ],
 | |
|         ],
 | |
|       ]
 | |
|     ];
 | |
| 
 | |
|     private $bad_data = [
 | |
|       [
 | |
|         "CONTAINER" => "bank",
 | |
|         "providerAccountId" => 10090,
 | |
|         "accountName" => "Business Trans Acct",
 | |
|         // "accountStatus"=> "ACTIVE",
 | |
|         "accountNumber" => "4402",
 | |
|         "aggregationSource" => "USER",
 | |
|         "isAsset" => true,
 | |
|         "balance" => [
 | |
|           "currency" => "AUD",
 | |
|           "amount" => 34.98,
 | |
|         ],
 | |
|         "id" => 19315,
 | |
|         "includeInNetWorth" => true,
 | |
|         "providerId" => "37",
 | |
|         "providerName" => "Bank",
 | |
|         "isManual" => false,
 | |
|         // "availableBalance"=> [
 | |
|         //   "currency"=> "AUD",
 | |
|         //   "amount"=> 7.98,
 | |
|         // ],
 | |
|         "currentBalance" => [
 | |
|           "currency" => "AUD",
 | |
|           "amount" => 344.98,
 | |
|         ],
 | |
|         "accountType" => "CHECKING",
 | |
|         "displayedName" => "after David",
 | |
|         "createdDate" => "2023-01-10T08=>29=>07Z",
 | |
|         "classification" => "SMALL_BUSINESS",
 | |
|         "lastUpdated" => "2023-08-01T23=>50=>13Z",
 | |
|         "nickname" => "Busines Acct",
 | |
|         "bankTransferCode" => [
 | |
|           [
 | |
|             "id" => "060",
 | |
|             "type" => "BSB",
 | |
|           ],
 | |
|         ],
 | |
|         "dataset" => [
 | |
|           [
 | |
|             "name" => "BASIC_AGG_DATA",
 | |
|             "additionalStatus" => "AVAILABLE_DATA_RETRIEVED",
 | |
|             "updateEligibility" => "ALLOW_UPDATE",
 | |
|             "lastUpdated" => "2023-08-01T23=>49=>53Z",
 | |
|             "lastUpdateAttempt" => "2023-08-01T23=>49=>53Z",
 | |
|             "nextUpdateScheduled" => "2023-08-03T14=>45=>14Z",
 | |
|           ],
 | |
|         ],
 | |
|       ]
 | |
|     ];
 | |
| 
 | |
| 
 | |
| 
 | |
|     protected function setUp(): void
 | |
|     {
 | |
|         parent::setUp();
 | |
|     }
 | |
| 
 | |
| 
 | |
|     public function testTransformRefactor()
 | |
|     {
 | |
|         $dto = $this->transformSummary($this->data[0]);
 | |
|         $this->assertEquals($dto->id, 19315);
 | |
|         $this->assertEquals($dto->provider_account_id, 330);
 | |
|         $this->assertEquals($dto->account_type, $this->data[0]['CONTAINER'] ?? '');
 | |
|         $this->assertEquals($dto->account_status, $this->data[0]['accountStatus'] ?? '');
 | |
|         $this->assertEquals($dto->account_number, $this->data[0]['accountNumber'] ?? '');
 | |
|         $this->assertEquals($dto->provider_account_id, $this->data[0]['providerAccountId'] ?? '');
 | |
|         $this->assertEquals($dto->provider_id, $this->data[0]['providerId'] ?? '');
 | |
|         $this->assertEquals($dto->provider_name, $this->data[0]['providerName'] ?? '');
 | |
|         $this->assertEquals($dto->nickname, $this->data[0]['nickname'] ?? '');
 | |
|         $this->assertEquals($dto->account_name, $this->data[0]['accountName'] ?? '');
 | |
|         $this->assertEquals($dto->current_balance, $this->data[0]['currentBalance']['amount'] ?? 0);
 | |
|         $this->assertEquals($dto->account_currency, $this->data[0]['currentBalance']['currency'] ?? 0);
 | |
| 
 | |
|         $dto_array = (array)$dto;
 | |
| 
 | |
|         $this->assertEquals($dto_array['id'], 19315);
 | |
|         $this->assertEquals($dto_array['provider_account_id'], 330);
 | |
|         $this->assertEquals($dto_array['account_type'], $this->data[0]['CONTAINER'] ?? '');
 | |
|         $this->assertEquals($dto_array['account_status'], $this->data[0]['accountStatus'] ?? '');
 | |
|         $this->assertEquals($dto_array['account_number'], $this->data[0]['accountNumber'] ?? '');
 | |
|         $this->assertEquals($dto_array['provider_account_id'], $this->data[0]['providerAccountId'] ?? '');
 | |
|         $this->assertEquals($dto_array['provider_id'], $this->data[0]['providerId'] ?? '');
 | |
|         $this->assertEquals($dto_array['provider_name'], $this->data[0]['providerName'] ?? '');
 | |
|         $this->assertEquals($dto_array['nickname'], $this->data[0]['nickname'] ?? '');
 | |
|         $this->assertEquals($dto_array['account_name'], $this->data[0]['accountName'] ?? '');
 | |
|         $this->assertEquals($dto_array['current_balance'], $this->data[0]['currentBalance']['amount'] ?? 0);
 | |
|         $this->assertEquals($dto_array['account_currency'], $this->data[0]['currentBalance']['currency'] ?? 0);
 | |
| 
 | |
|     }
 | |
| 
 | |
|     private function transformSummary($summary)
 | |
|     {
 | |
|         $dto = new \stdClass();
 | |
|         $dto->id = $summary['id'] ?? 0;
 | |
|         $dto->account_type = $summary['CONTAINER'] ?? '';
 | |
| 
 | |
|         $dto->account_status = $summary['accountStatus'] ?? '';
 | |
|         $dto->account_number = $summary['accountNumber'] ?? '';
 | |
|         $dto->provider_account_id = $summary['providerAccountId'] ?? '';
 | |
|         $dto->provider_id = $summary['providerId'] ?? '';
 | |
|         $dto->provider_name = $summary['providerName'] ?? '';
 | |
|         $dto->nickname = $summary['nickname'] ?? '';
 | |
|         $dto->account_name = $summary['accountName'] ?? '';
 | |
|         $dto->current_balance = $summary['currentBalance']['amount'] ?? 0;
 | |
|         $dto->account_currency = $summary['currentBalance']['currency'] ?? 0;
 | |
| 
 | |
|         return $dto;
 | |
|     }
 | |
| }
 |