mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-16 18:25:00 -06:00
Expand tests
This commit is contained in:
parent
5b35612be0
commit
413df5a005
@ -23,12 +23,12 @@ namespace Tests\Feature\Console\Commands\Correction;
|
||||
|
||||
|
||||
use FireflyIII\Models\TransactionJournal;
|
||||
use FireflyIII\Models\TransactionType;
|
||||
use Log;
|
||||
use Tests\TestCase;
|
||||
|
||||
/**
|
||||
* Class CorrectOpeningBalanceCurrenciesTest
|
||||
*
|
||||
* @package Tests\Feature\Console\Commands\Correction
|
||||
*/
|
||||
class CorrectOpeningBalanceCurrenciesTest extends TestCase
|
||||
@ -59,7 +59,7 @@ class CorrectOpeningBalanceCurrenciesTest extends TestCase
|
||||
public function testHandleBroken(): void
|
||||
{
|
||||
// create opening balance journal for test. Is enough to trigger this test.
|
||||
factory(TransactionJournal::class)->state(TransactionType::OPENING_BALANCE)->create();
|
||||
TransactionJournal::factory()->openingBalance()->create();
|
||||
|
||||
// run command
|
||||
$this->artisan('firefly-iii:fix-ob-currencies')
|
||||
@ -74,11 +74,11 @@ class CorrectOpeningBalanceCurrenciesTest extends TestCase
|
||||
{
|
||||
Log::debug('Now in testHandleNoAccount');
|
||||
// create opening balance journal for test. Is enough to trigger this test.
|
||||
$journal = factory(TransactionJournal::class)->state('ob_broken')->create();
|
||||
$journal = TransactionJournal::factory()->brokenOpeningBalance()->create();
|
||||
|
||||
// run command
|
||||
$this->artisan('firefly-iii:fix-ob-currencies')
|
||||
->expectsOutput(sprintf('Transaction journal #%d has no valid account. Cant fix this line.', $journal->id))
|
||||
->expectsOutput(sprintf('Transaction journal #%d has no valid account. Cant fix this line.', $journal->id))
|
||||
//->expectsOutput('Cant fix this line.')
|
||||
->assertExitCode(0);
|
||||
|
||||
|
@ -26,11 +26,6 @@ namespace Tests\Feature\Console\Commands\Correction;
|
||||
|
||||
|
||||
use FireflyIII\Models\Preference;
|
||||
use FireflyIII\Repositories\User\UserRepositoryInterface;
|
||||
use Illuminate\Support\Collection;
|
||||
use Log;
|
||||
use Mockery;
|
||||
use Preferences;
|
||||
use Tests\TestCase;
|
||||
|
||||
/**
|
||||
@ -44,7 +39,7 @@ class CreateAccessTokensTest extends TestCase
|
||||
public function testHandle(): void
|
||||
{
|
||||
// remove preferences so token will be generated
|
||||
Preference::where('name','access_token')->delete();
|
||||
Preference::where('name', 'access_token')->delete();
|
||||
|
||||
$this->artisan('firefly-iii:create-access-tokens')
|
||||
->expectsOutput(sprintf('Generated access token for user %s', $this->user()->email))
|
||||
@ -56,9 +51,9 @@ class CreateAccessTokensTest extends TestCase
|
||||
*/
|
||||
public function testHandlePrefExists(): void
|
||||
{
|
||||
$preference = new Preference;
|
||||
$preference->data = '123';
|
||||
$preference->name = 'access_token';
|
||||
$preference = new Preference;
|
||||
$preference->data = '123';
|
||||
$preference->name = 'access_token';
|
||||
$preference->user_id = $this->user()->id;
|
||||
$preference->save();
|
||||
|
||||
|
@ -24,7 +24,7 @@ declare(strict_types=1);
|
||||
namespace Tests\Feature\Console\Commands\Correction;
|
||||
|
||||
|
||||
use FireflyIII\Factory\AccountFactory;
|
||||
use FireflyIII\Models\Account;
|
||||
use FireflyIII\Models\AccountType;
|
||||
use FireflyIII\Models\Transaction;
|
||||
use FireflyIII\Models\TransactionJournal;
|
||||
@ -87,7 +87,6 @@ class FixAccountTypesTest extends TestCase
|
||||
*/
|
||||
public function testHandleWithdrawalLoanLoan(): void
|
||||
{
|
||||
$this->mock(AccountFactory::class);
|
||||
$source = $this->getRandomLoan();
|
||||
$destination = $this->getRandomLoan($source->id);
|
||||
$type = TransactionType::where('type', TransactionType::WITHDRAWAL)->first();
|
||||
@ -134,7 +133,6 @@ class FixAccountTypesTest extends TestCase
|
||||
*/
|
||||
public function testHandleTransferAssetLoan(): void
|
||||
{
|
||||
$this->mock(AccountFactory::class);
|
||||
$source = $this->getRandomAsset();
|
||||
$destination = $this->getRandomLoan();
|
||||
$type = TransactionType::where('type', TransactionType::TRANSFER)->first();
|
||||
@ -183,7 +181,6 @@ class FixAccountTypesTest extends TestCase
|
||||
*/
|
||||
public function testHandleTransferLoanAsset(): void
|
||||
{
|
||||
$this->mock(AccountFactory::class);
|
||||
$source = $this->getRandomLoan();
|
||||
$destination = $this->getRandomAsset();
|
||||
$type = TransactionType::where('type', TransactionType::TRANSFER)->first();
|
||||
@ -232,11 +229,10 @@ class FixAccountTypesTest extends TestCase
|
||||
*/
|
||||
public function testHandleWithdrawalAssetRevenue(): void
|
||||
{
|
||||
$source = $this->getRandomAsset();
|
||||
$destination = $this->getRandomRevenue();
|
||||
$newDestination = $this->getRandomExpense();
|
||||
$withdrawal = TransactionType::where('type', TransactionType::WITHDRAWAL)->first();
|
||||
$journal = TransactionJournal::create(
|
||||
$source = $this->getRandomAsset();
|
||||
$destination = $this->getRandomRevenue(); // is revenue account.
|
||||
$withdrawal = TransactionType::where('type', TransactionType::WITHDRAWAL)->first();
|
||||
$journal = TransactionJournal::create(
|
||||
[
|
||||
'user_id' => 1,
|
||||
'transaction_currency_id' => 1,
|
||||
@ -246,39 +242,45 @@ class FixAccountTypesTest extends TestCase
|
||||
'date' => '2019-01-01',
|
||||
]
|
||||
);
|
||||
$one = Transaction::create(
|
||||
$one = Transaction::create(
|
||||
[
|
||||
'transaction_journal_id' => $journal->id,
|
||||
'account_id' => $source->id,
|
||||
'amount' => '-10',
|
||||
]
|
||||
);
|
||||
$two = Transaction::create(
|
||||
$two = Transaction::create(
|
||||
[
|
||||
'transaction_journal_id' => $journal->id,
|
||||
'account_id' => $destination->id,
|
||||
'account_id' => $destination->id, // revenue cannot be destination.
|
||||
'amount' => '10',
|
||||
]
|
||||
);
|
||||
|
||||
// create expense account with the same name:
|
||||
$expense = AccountType::where('type', AccountType::EXPENSE)->first();
|
||||
$newDestination = Account::create(
|
||||
[
|
||||
'name' => $destination->name,
|
||||
'account_type_id' => $expense->id,
|
||||
'user_id' => 1,
|
||||
]
|
||||
);
|
||||
|
||||
// asset we find bad destination.
|
||||
$this->assertCount(0, Transaction::where('id', $two->id)->where('account_id', $newDestination->id)->get());
|
||||
$this->assertCount(1, Transaction::where('id', $two->id)->where('account_id', $destination->id)->get());
|
||||
|
||||
// mock stuff
|
||||
$factory = $this->mock(AccountFactory::class);
|
||||
$factory->shouldReceive('setUser')->atLeast()->once();
|
||||
$factory->shouldReceive('findOrCreate')
|
||||
->withArgs([$destination->name, AccountType::EXPENSE])
|
||||
->atLeast()->once()->andReturn($newDestination);
|
||||
|
||||
// Transaction journal #137, destination account changed from #1 ("Checking Account") to #29 ("Land lord").
|
||||
$this->artisan('firefly-iii:fix-account-types')
|
||||
->expectsOutput(
|
||||
sprintf('Transaction journal #%d, destination account changed from #%d ("%s") to #%d ("%s").',
|
||||
$journal->id,
|
||||
$destination->id, $destination->name,
|
||||
$newDestination->id, $newDestination->name
|
||||
))
|
||||
sprintf(
|
||||
'Transaction journal #%d, destination account changed from #%d ("%s") to #%d ("%s").',
|
||||
$journal->id,
|
||||
$destination->id, $destination->name,
|
||||
$newDestination->id, $newDestination->name
|
||||
)
|
||||
)
|
||||
->expectsOutput('Acted on 1 transaction(s)!')
|
||||
->assertExitCode(0);
|
||||
|
||||
@ -296,12 +298,12 @@ class FixAccountTypesTest extends TestCase
|
||||
*/
|
||||
public function testHandleDepositAssetExpense(): void
|
||||
{
|
||||
$source = $this->getRandomExpense();
|
||||
$newSource = $this->getRandomRevenue();
|
||||
$source = $this->getRandomExpense(); // expense account
|
||||
//$newSource = $this->getRandomRevenue();
|
||||
$destination = $this->getRandomAsset();
|
||||
|
||||
$deposit = TransactionType::where('type', TransactionType::DEPOSIT)->first();
|
||||
$journal = TransactionJournal::create(
|
||||
$deposit = TransactionType::where('type', TransactionType::DEPOSIT)->first();
|
||||
$journal = TransactionJournal::create(
|
||||
[
|
||||
'user_id' => 1,
|
||||
'transaction_currency_id' => 1,
|
||||
@ -311,39 +313,44 @@ class FixAccountTypesTest extends TestCase
|
||||
'date' => '2019-01-01',
|
||||
]
|
||||
);
|
||||
$one = Transaction::create(
|
||||
$one = Transaction::create(
|
||||
[
|
||||
'transaction_journal_id' => $journal->id,
|
||||
'account_id' => $source->id,
|
||||
'account_id' => $source->id, // expense account cannot be source.
|
||||
'amount' => '-10',
|
||||
]
|
||||
);
|
||||
$two = Transaction::create(
|
||||
$two = Transaction::create(
|
||||
[
|
||||
'transaction_journal_id' => $journal->id,
|
||||
'account_id' => $destination->id,
|
||||
'amount' => '10',
|
||||
]
|
||||
);
|
||||
// create revenue account with the same name:
|
||||
$revenue = AccountType::where('type', AccountType::REVENUE)->first();
|
||||
$newSource = Account::create(
|
||||
[
|
||||
'name' => $source->name,
|
||||
'account_type_id' => $revenue->id,
|
||||
'user_id' => 1,
|
||||
]
|
||||
);
|
||||
|
||||
$this->assertCount(0, Transaction::where('id', $one->id)->where('account_id', $newSource->id)->get());
|
||||
$this->assertCount(1, Transaction::where('id', $one->id)->where('account_id', $source->id)->get());
|
||||
|
||||
// mock stuff
|
||||
$factory = $this->mock(AccountFactory::class);
|
||||
$factory->shouldReceive('setUser')->atLeast()->once();
|
||||
$factory->shouldReceive('findOrCreate')
|
||||
->withArgs([$source->name, AccountType::REVENUE])
|
||||
->atLeast()->once()->andReturn($newSource);
|
||||
|
||||
// Transaction journal #137, destination account changed from #1 ("Checking Account") to #29 ("Land lord").
|
||||
$this->artisan('firefly-iii:fix-account-types')
|
||||
->expectsOutput(
|
||||
sprintf('Transaction journal #%d, source account changed from #%d ("%s") to #%d ("%s").',
|
||||
$journal->id,
|
||||
$destination->id, $destination->name,
|
||||
$newSource->id, $newSource->name
|
||||
))
|
||||
sprintf(
|
||||
'Transaction journal #%d, source account changed from #%d ("%s") to #%d ("%s").',
|
||||
$journal->id,
|
||||
$destination->id, $destination->name,
|
||||
$newSource->id, $newSource->name
|
||||
)
|
||||
)
|
||||
->expectsOutput('Acted on 1 transaction(s)!')
|
||||
->assertExitCode(0);
|
||||
|
||||
|
@ -34,7 +34,9 @@ class FixTransactionTypesTest extends TestCase
|
||||
*/
|
||||
public function testHandle(): void
|
||||
{
|
||||
$this->markTestIncomplete();
|
||||
$this->artisan('firefly-iii:fix-transaction-types')
|
||||
//->expectsOutput()
|
||||
->assertExitCode(0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -23,18 +23,17 @@ declare(strict_types=1);
|
||||
|
||||
namespace Tests;
|
||||
|
||||
use FireflyIII\User;
|
||||
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
|
||||
use Tests\Traits\CollectsValues;
|
||||
use Tests\Traits\MocksDefaultValues;
|
||||
use Tests\Traits\TestHelpers;
|
||||
|
||||
/**
|
||||
* Class TestCase
|
||||
*/
|
||||
abstract class TestCase extends BaseTestCase
|
||||
{
|
||||
use CreatesApplication, CollectsValues; // MocksDefaultValues TestHelpers
|
||||
use CreatesApplication, CollectsValues;
|
||||
|
||||
// MocksDefaultValues TestHelpers
|
||||
|
||||
/**
|
||||
* @return array
|
||||
|
Loading…
Reference in New Issue
Block a user