mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-03 22:47:32 -05: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;
 | 
						|
    }
 | 
						|
}
 |