//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; } }