Slightly improved test coverage.

This commit is contained in:
James Cole 2015-06-04 23:08:44 +02:00
parent ad1c61d959
commit d579992c98

View File

@ -1,6 +1,5 @@
<?php <?php
use FireflyIII\Models\Transaction;
use League\FactoryMuffin\Facade as FactoryMuffin; use League\FactoryMuffin\Facade as FactoryMuffin;
/** /**
@ -275,7 +274,9 @@ class TransactionJournalModelTest extends TestCase
*/ */
public function testGetAssetAccountAttributeFallback() public function testGetAssetAccountAttributeFallback()
{ {
FactoryMuffin::create('FireflyIII\Models\TransactionType');
FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal
FactoryMuffin::create('FireflyIII\Models\TransactionType'); // deposit
// make accounts // make accounts
FactoryMuffin::create('FireflyIII\Models\Account'); FactoryMuffin::create('FireflyIII\Models\Account');
@ -283,21 +284,21 @@ class TransactionJournalModelTest extends TestCase
$asset = FactoryMuffin::create('FireflyIII\Models\Account'); $asset = FactoryMuffin::create('FireflyIII\Models\Account');
// make withdrawal // make withdrawal
$depositType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); $transferType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // transfer
$deposit = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); $transfer = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$deposit->transaction_type_id = $depositType->id; $transfer->transaction_type_id = $transferType->id;
$deposit->save(); $transfer->save();
$deposit->transactions[0]->account_id = $asset->id; $transfer->transactions[0]->account_id = $asset->id;
$deposit->transactions[0]->amount = 300; $transfer->transactions[0]->amount = 300;
$deposit->transactions[0]->save(); $transfer->transactions[0]->save();
$deposit->transactions[1]->account_id = $revenue->id; $transfer->transactions[1]->account_id = $revenue->id;
$deposit->transactions[1]->amount = -300; $transfer->transactions[1]->amount = -300;
$deposit->transactions[1]->save(); $transfer->transactions[1]->save();
// get asset account: // get asset account:
$result = $deposit->asset_account; $result = $transfer->asset_account;
$this->assertEquals($asset->id, $result->id); $this->assertEquals($asset->id, $result->id);
} }
@ -318,7 +319,6 @@ class TransactionJournalModelTest extends TestCase
$withdrawal->save(); $withdrawal->save();
$withdrawal->transactions[0]->account_id = $asset->id; $withdrawal->transactions[0]->account_id = $asset->id;
$withdrawal->transactions[0]->amount = -300; $withdrawal->transactions[0]->amount = -300;
$withdrawal->transactions[0]->save(); $withdrawal->transactions[0]->save();
@ -333,6 +333,102 @@ class TransactionJournalModelTest extends TestCase
$this->assertEquals($asset->id, $result->id); $this->assertEquals($asset->id, $result->id);
} }
/**
* @covers FireflyIII\Models\TransactionJournal::getCorrectAmountAttribute
*/
public function testGetCorrectAmountAttribute()
{
$withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal
// make accounts
FactoryMuffin::create('FireflyIII\Models\Account');
$revenue = FactoryMuffin::create('FireflyIII\Models\Account');
$asset = FactoryMuffin::create('FireflyIII\Models\Account');
// make withdrawal
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$journal->transaction_type_id = $withdrawal->id;
$journal->save();
$journal->transactions[0]->account_id = $asset->id;
$journal->transactions[0]->amount = 300;
$journal->transactions[0]->save();
$journal->transactions[1]->account_id = $revenue->id;
$journal->transactions[1]->amount = -300;
$journal->transactions[1]->save();
// get asset account:
$result = $journal->correct_amount;
$this->assertEquals(-300, $result);
}
/**
* @covers FireflyIII\Models\TransactionJournal::getCorrectAmountAttribute
*/
public function testGetCorrectAmountAttributeDeposit()
{
FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal
$deposit = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // deposit
// make accounts
FactoryMuffin::create('FireflyIII\Models\Account');
$revenue = FactoryMuffin::create('FireflyIII\Models\Account');
$asset = FactoryMuffin::create('FireflyIII\Models\Account');
// make withdrawal
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$journal->transaction_type_id = $deposit->id;
$journal->save();
$journal->transactions[0]->account_id = $asset->id;
$journal->transactions[0]->amount = 300;
$journal->transactions[0]->save();
$journal->transactions[1]->account_id = $revenue->id;
$journal->transactions[1]->amount = -300;
$journal->transactions[1]->save();
// get asset account:
$result = $journal->correct_amount;
$this->assertEquals(300, $result);
}
/**
* @covers FireflyIII\Models\TransactionJournal::getCorrectAmountAttribute
*/
public function testGetCorrectAmountAttributeTransfer()
{
FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal
FactoryMuffin::create('FireflyIII\Models\TransactionType'); // deposit
$transfer = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // transfer
// make accounts
FactoryMuffin::create('FireflyIII\Models\Account');
$revenue = FactoryMuffin::create('FireflyIII\Models\Account');
$asset = FactoryMuffin::create('FireflyIII\Models\Account');
// make withdrawal
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$journal->transaction_type_id = $transfer->id;
$journal->save();
$journal->transactions[0]->account_id = $asset->id;
$journal->transactions[0]->amount = 300;
$journal->transactions[0]->save();
$journal->transactions[1]->account_id = $revenue->id;
$journal->transactions[1]->amount = -300;
$journal->transactions[1]->save();
// get asset account:
$result = $journal->correct_amount;
$this->assertEquals('0', $result);
}
/** /**
* @covers FireflyIII\Models\TransactionJournal::getDestinationAccountAttribute * @covers FireflyIII\Models\TransactionJournal::getDestinationAccountAttribute
*/ */
@ -393,4 +489,94 @@ class TransactionJournalModelTest extends TestCase
$this->assertEquals($asset->id, $result->id); $this->assertEquals($asset->id, $result->id);
} }
/**
* @covers FireflyIII\Models\TransactionJournal::getExpenseAccountAttribute
*/
public function testGetExpenseAccountAttribute()
{
FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal
$depositType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // deposit
$deposit = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$deposit->transaction_type_id = $depositType->id;
$deposit->save();
// make accounts
FactoryMuffin::create('FireflyIII\Models\Account');
$revenue = FactoryMuffin::create('FireflyIII\Models\Account');
$asset = FactoryMuffin::create('FireflyIII\Models\Account');
$deposit->transactions[0]->account_id = $asset->id;
$deposit->transactions[0]->amount = 300;
$deposit->transactions[0]->save();
$deposit->transactions[1]->account_id = $revenue->id;
$deposit->transactions[1]->amount = -300;
$deposit->transactions[1]->save();
// get asset account:
$result = $deposit->expense_account;
$this->assertEquals($revenue->id, $result->id);
}
/**
* @covers FireflyIII\Models\TransactionJournal::getExpenseAccountAttribute
*/
public function testGetExpenseAccountAttributeFallback()
{
FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal
FactoryMuffin::create('FireflyIII\Models\TransactionType'); // deposit
$transferType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // transfer
$transfer = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$transfer->transaction_type_id = $transferType->id;
$transfer->save();
// make accounts
FactoryMuffin::create('FireflyIII\Models\Account');
$revenue = FactoryMuffin::create('FireflyIII\Models\Account');
$asset = FactoryMuffin::create('FireflyIII\Models\Account');
$transfer->transactions[0]->account_id = $asset->id;
$transfer->transactions[0]->amount = 300;
$transfer->transactions[0]->save();
$transfer->transactions[1]->account_id = $revenue->id;
$transfer->transactions[1]->amount = -300;
$transfer->transactions[1]->save();
// get asset account:
$result = $transfer->expense_account;
$this->assertEquals($asset->id, $result->id);
}
/**
* @covers FireflyIII\Models\TransactionJournal::getExpenseAccountAttribute
*/
public function testGetExpenseAccountAttributeWithdrawal()
{
$withdrawalType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal
$withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$withdrawal->transaction_type_id = $withdrawalType->id;
$withdrawal->save();
// make accounts
FactoryMuffin::create('FireflyIII\Models\Account');
$revenue = FactoryMuffin::create('FireflyIII\Models\Account');
$asset = FactoryMuffin::create('FireflyIII\Models\Account');
$withdrawal->transactions[0]->account_id = $asset->id;
$withdrawal->transactions[0]->amount = 300;
$withdrawal->transactions[0]->save();
$withdrawal->transactions[1]->account_id = $revenue->id;
$withdrawal->transactions[1]->amount = -300;
$withdrawal->transactions[1]->save();
// get asset account:
$result = $withdrawal->expense_account;
$this->assertEquals($asset->id, $result->id);
}
} }