Improve test coverage.

This commit is contained in:
James Cole
2019-06-10 20:14:00 +02:00
parent 8efb73694d
commit 2ab9d2e6ee
75 changed files with 4672 additions and 484 deletions

View File

@@ -70,7 +70,7 @@ class AccountRepository implements AccountRepositoryInterface
/**
* Moved here from account CRUD.
*
* @param Account $account
* @param Account $account
* @param Account|null $moveTo
*
* @return bool
@@ -88,7 +88,7 @@ class AccountRepository implements AccountRepositoryInterface
/**
* @param string $number
* @param array $types
* @param array $types
*
* @return Account|null
*/
@@ -115,7 +115,7 @@ class AccountRepository implements AccountRepositoryInterface
/**
* @param string $iban
* @param array $types
* @param array $types
*
* @return Account|null
*/
@@ -141,7 +141,7 @@ class AccountRepository implements AccountRepositoryInterface
/**
* @param string $name
* @param array $types
* @param array $types
*
* @return Account|null
*/
@@ -229,9 +229,10 @@ class AccountRepository implements AccountRepositoryInterface
if (count($accountIds) > 0) {
$query->whereIn('accounts.id', $accountIds);
}
$query->orderBy('accounts.name','ASC');
$query->orderBy('accounts.name', 'ASC');
$result = $query->get(['accounts.*']);
return $result;
}
@@ -247,7 +248,7 @@ class AccountRepository implements AccountRepositoryInterface
if (count($types) > 0) {
$query->accountTypeIn($types);
}
$query->orderBy('accounts.name','ASC');
$query->orderBy('accounts.name', 'ASC');
$result = $query->get(['accounts.*']);
@@ -271,8 +272,8 @@ class AccountRepository implements AccountRepositoryInterface
$query->accountTypeIn($types);
}
$query->where('active', 1);
$query->orderBy('accounts.account_type_id','ASC');
$query->orderBy('accounts.name','ASC');
$query->orderBy('accounts.account_type_id', 'ASC');
$query->orderBy('accounts.name', 'ASC');
$result = $query->get(['accounts.*']);
return $result;
@@ -322,7 +323,7 @@ class AccountRepository implements AccountRepositoryInterface
* Return meta value for account. Null if not found.
*
* @param Account $account
* @param string $field
* @param string $field
*
* @return null|string
*/
@@ -546,7 +547,7 @@ class AccountRepository implements AccountRepositoryInterface
/**
* @param string $query
* @param array $types
* @param array $types
*
* @return Collection
*/
@@ -590,7 +591,7 @@ class AccountRepository implements AccountRepositoryInterface
/**
* @param Account $account
* @param array $data
* @param array $data
*
* @return Account
* @throws \FireflyIII\Exceptions\FireflyException
@@ -605,4 +606,17 @@ class AccountRepository implements AccountRepositoryInterface
return $account;
}
/**
* @param Account $account
* @return TransactionJournal|null
*/
public function getOpeningBalance(Account $account): ?TransactionJournal
{
return TransactionJournal
::leftJoin('transactions', 'transactions.transaction_journal_id', '=', 'transaction_journals.id')
->where('transactions.account_id', $account->id)
->transactionTypes([TransactionType::OPENING_BALANCE])
->first(['transaction_journals.*']);
}
}

View File

@@ -37,6 +37,12 @@ use Illuminate\Support\Collection;
interface AccountRepositoryInterface
{
/**
* @param Account $account
* @return TransactionJournal|null
*/
public function getOpeningBalance(Account $account): ?TransactionJournal;
/**
* Moved here from account CRUD.
*
@@ -49,7 +55,7 @@ interface AccountRepositoryInterface
/**
* Moved here from account CRUD.
*
* @param Account $account
* @param Account $account
* @param Account|null $moveTo
*
* @return bool
@@ -60,7 +66,7 @@ interface AccountRepositoryInterface
* Find by account number. Is used.
*
* @param string $number
* @param array $types
* @param array $types
*
* @return Account|null
*/
@@ -68,7 +74,7 @@ interface AccountRepositoryInterface
/**
* @param string $iban
* @param array $types
* @param array $types
*
* @return Account|null
*/
@@ -76,7 +82,7 @@ interface AccountRepositoryInterface
/**
* @param string $name
* @param array $types
* @param array $types
*
* @return Account|null
*/
@@ -149,7 +155,7 @@ interface AccountRepositoryInterface
* Return meta value for account. Null if not found.
*
* @param Account $account
* @param string $field
* @param string $field
*
* @return null|string
*/
@@ -250,7 +256,7 @@ interface AccountRepositoryInterface
/**
* @param string $query
* @param array $types
* @param array $types
*
* @return Collection
*/
@@ -270,7 +276,7 @@ interface AccountRepositoryInterface
/**
* @param Account $account
* @param array $data
* @param array $data
*
* @return Account
*/

View File

@@ -791,4 +791,19 @@ class JournalRepository implements JournalRepositoryInterface
return $journal;
}
/**
* Get all transaction journals with a specific type, regardless of user.
*
* @param array $types
* @return Collection
*/
public function getAllJournals(array $types): Collection
{
return TransactionJournal
::leftJoin('transaction_types', 'transaction_types.id', '=', 'transaction_journals.transaction_type_id')
->whereIn('transaction_types.type', $types)
->with(['user', 'transactionType', 'transactionCurrency', 'transactions', 'transactions.account'])
->get(['transaction_journals.*']);
}
}

View File

@@ -23,7 +23,6 @@ declare(strict_types=1);
namespace FireflyIII\Repositories\Journal;
use Carbon\Carbon;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Account;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionGroup;
@@ -41,11 +40,20 @@ use Illuminate\Support\MessageBag;
*/
interface JournalRepositoryInterface
{
/**
* Get all transaction journals with a specific type, regardless of user.
*
* @param array $types
* @return Collection
*/
public function getAllJournals(array $types): Collection;
/**
* @param TransactionJournal $journal
* @param TransactionType $type
* @param Account $source
* @param Account $destination
* @param TransactionType $type
* @param Account $source
* @param Account $destination
*
* @return MessageBag
*/
@@ -157,7 +165,7 @@ interface JournalRepositoryInterface
* otherwise look for meta field and return that one.
*
* @param TransactionJournal $journal
* @param null|string $field
* @param null|string $field
*
* @return string
*/
@@ -208,7 +216,7 @@ interface JournalRepositoryInterface
* Return Carbon value of a meta field (or NULL).
*
* @param TransactionJournal $journal
* @param string $field
* @param string $field
*
* @return null|Carbon
*/
@@ -218,7 +226,7 @@ interface JournalRepositoryInterface
* Return string value of a meta date (or NULL).
*
* @param TransactionJournal $journal
* @param string $field
* @param string $field
*
* @return null|string
*/
@@ -228,7 +236,7 @@ interface JournalRepositoryInterface
* Return value of a meta field (or NULL).
*
* @param TransactionJournal $journal
* @param string $field
* @param string $field
*
* @return null|string
*/
@@ -301,7 +309,7 @@ interface JournalRepositoryInterface
/**
* @param TransactionJournal $journal
* @param int $order
* @param int $order
*
* @return bool
*/
@@ -316,7 +324,7 @@ interface JournalRepositoryInterface
* Update budget for a journal.
*
* @param TransactionJournal $journal
* @param int $budgetId
* @param int $budgetId
*
* @return TransactionJournal
*/
@@ -326,7 +334,7 @@ interface JournalRepositoryInterface
* Update category for a journal.
*
* @param TransactionJournal $journal
* @param string $category
* @param string $category
*
* @return TransactionJournal
*/
@@ -336,7 +344,7 @@ interface JournalRepositoryInterface
* Update tag(s) for a journal.
*
* @param TransactionJournal $journal
* @param array $tags
* @param array $tags
*
* @return TransactionJournal
*/