2018-01-05 17:29:42 +01:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* AssetAccountIbansTest.php
|
2019-10-02 06:45:03 +02:00
|
|
|
* Copyright (c) 2019 thegrumpydictator@gmail.com
|
2018-01-05 17:29:42 +01:00
|
|
|
*
|
2019-10-02 06:45:03 +02:00
|
|
|
* This file is part of Firefly III (https://github.com/firefly-iii).
|
2018-01-05 17:29:42 +01:00
|
|
|
*
|
2019-10-02 06:45:03 +02:00
|
|
|
* This program is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Affero General Public License as
|
|
|
|
* published by the Free Software Foundation, either version 3 of the
|
|
|
|
* License, or (at your option) any later version.
|
2018-01-05 17:29:42 +01:00
|
|
|
*
|
2019-10-02 06:45:03 +02:00
|
|
|
* This program is distributed in the hope that it will be useful,
|
2018-01-05 17:29:42 +01:00
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
2019-10-02 06:45:03 +02:00
|
|
|
* GNU Affero General Public License for more details.
|
2018-01-05 17:29:42 +01:00
|
|
|
*
|
2019-10-02 06:45:03 +02:00
|
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
2018-01-05 17:29:42 +01:00
|
|
|
*/
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
namespace Tests\Unit\Import\Mapper;
|
|
|
|
|
|
|
|
use FireflyIII\Import\Mapper\AssetAccountIbans;
|
|
|
|
use FireflyIII\Models\Account;
|
|
|
|
use FireflyIII\Models\AccountType;
|
|
|
|
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
|
|
|
use Illuminate\Support\Collection;
|
2018-09-04 09:52:19 +02:00
|
|
|
use Log;
|
2018-09-10 16:18:35 +02:00
|
|
|
use Tests\TestCase;
|
2018-01-05 17:29:42 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Class AssetAccountIbansTest
|
2019-08-17 10:48:28 +02:00
|
|
|
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
|
|
|
|
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
|
|
|
|
* @SuppressWarnings(PHPMD.TooManyPublicMethods)
|
2018-01-05 17:29:42 +01:00
|
|
|
*/
|
|
|
|
class AssetAccountIbansTest extends TestCase
|
|
|
|
{
|
2018-09-04 09:52:19 +02:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public function setUp(): void
|
|
|
|
{
|
|
|
|
parent::setUp();
|
2019-04-09 20:05:20 +02:00
|
|
|
Log::info(sprintf('Now in %s.', get_class($this)));
|
2018-09-04 09:52:19 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2018-01-05 17:29:42 +01:00
|
|
|
/**
|
2018-08-09 20:17:15 +02:00
|
|
|
* @covers \FireflyIII\Import\Mapper\AssetAccountIbans
|
2018-01-05 17:29:42 +01:00
|
|
|
*/
|
2018-05-11 19:58:10 +02:00
|
|
|
public function testGetMapBasic(): void
|
2018-01-05 17:29:42 +01:00
|
|
|
{
|
2018-09-10 16:18:35 +02:00
|
|
|
$asset = AccountType::where('type', AccountType::ASSET)->first();
|
|
|
|
$loan = AccountType::where('type', AccountType::LOAN)->first();
|
|
|
|
$one = new Account;
|
|
|
|
$one->id = 17;
|
|
|
|
$one->name = 'Something';
|
|
|
|
$one->iban = 'IBAN';
|
|
|
|
$one->account_type_id = $asset->id;
|
|
|
|
|
|
|
|
$two = new Account;
|
|
|
|
$two->id = 53;
|
|
|
|
$two->name = 'Else';
|
|
|
|
$two->account_type_id = $loan->id;
|
|
|
|
|
2018-09-26 20:35:27 +02:00
|
|
|
$three = new Account;
|
|
|
|
$three->id = 66;
|
|
|
|
$three->name = 'I have IBAN';
|
|
|
|
$three->iban = 'IBAN';
|
|
|
|
$three->account_type_id = $loan->id;
|
|
|
|
|
|
|
|
$collection = new Collection([$one, $two, $three]);
|
2018-01-05 17:29:42 +01:00
|
|
|
|
|
|
|
$repository = $this->mock(AccountRepositoryInterface::class);
|
2018-09-10 16:18:35 +02:00
|
|
|
$repository->shouldReceive('getAccountsByType')->withArgs(
|
|
|
|
[[AccountType::DEFAULT, AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::CREDITCARD, AccountType::MORTGAGE,]]
|
|
|
|
)->andReturn($collection)->once();
|
2018-01-05 17:29:42 +01:00
|
|
|
|
|
|
|
$mapper = new AssetAccountIbans();
|
|
|
|
$mapping = $mapper->getMap();
|
2018-09-26 20:35:27 +02:00
|
|
|
$this->assertCount(4, $mapping);
|
2018-01-05 17:29:42 +01:00
|
|
|
// assert this is what the result looks like:
|
|
|
|
$result = [
|
2018-04-02 14:17:11 +02:00
|
|
|
0 => (string)trans('import.map_do_not_map'),
|
2018-09-10 16:18:35 +02:00
|
|
|
53 => 'Else (liability)',
|
2018-09-26 20:35:27 +02:00
|
|
|
66 => 'IBAN (I have IBAN) (liability)',
|
2018-01-06 07:33:30 +01:00
|
|
|
17 => 'IBAN (Something)',
|
2018-01-05 17:29:42 +01:00
|
|
|
];
|
|
|
|
$this->assertEquals($result, $mapping);
|
|
|
|
}
|
|
|
|
|
2018-03-04 15:14:29 +01:00
|
|
|
}
|