Expand test coverage.

This commit is contained in:
James Cole
2017-12-23 17:42:07 +01:00
parent 8bd76d1ff0
commit 08b743ddcb
82 changed files with 1413 additions and 142 deletions

View File

@@ -24,6 +24,7 @@ namespace FireflyIII\Repositories\Journal;
use FireflyIII\Models\Account;
use FireflyIII\Models\AccountType;
use FireflyIII\Models\Note;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionType;
@@ -189,6 +190,16 @@ class JournalRepository implements JournalRepositoryInterface
return null;
}
/**
* @param TransactionJournal $journal
*
* @return Note|null
*/
public function getNote(TransactionJournal $journal): ?Note
{
return $journal->notes()->first();
}
/**
* @return Collection
*/

View File

@@ -23,8 +23,10 @@ declare(strict_types=1);
namespace FireflyIII\Repositories\Journal;
use FireflyIII\Models\Account;
use FireflyIII\Models\Note;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionJournalLink;
use FireflyIII\Models\TransactionType;
use FireflyIII\User;
use Illuminate\Support\Collection;
@@ -52,6 +54,13 @@ interface JournalRepositoryInterface
*/
public function countTransactions(TransactionJournal $journal): int;
/**
* @param TransactionJournal $journal
*
* @return Note|null
*/
public function getNote(TransactionJournal $journal): ?Note;
/**
* Deletes a journal.
*

View File

@@ -123,7 +123,7 @@ trait UpdateJournalsTrait
/**
* Update tags.
*
*
* @param TransactionJournal $journal
* @param array $array
*

View File

@@ -22,11 +22,13 @@ declare(strict_types=1);
namespace FireflyIII\Repositories\LinkType;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\LinkType;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionJournalLink;
use FireflyIII\User;
use Illuminate\Support\Collection;
use Log;
/**
* Class LinkTypeRepository.
@@ -157,6 +159,42 @@ class LinkTypeRepository implements LinkTypeRepositoryInterface
return $linkType;
}
/**
* Store link between two journals.
*
* @param array $information
* @param TransactionJournal $left
* @param TransactionJournal $right
*
* @return mixed
* @throws FireflyException
*/
public function storeLink(array $information, TransactionJournal $left, TransactionJournal $right): TransactionJournalLink
{
$linkType = $this->find(intval($information['link_type_id']) ?? 0);
if (is_null($linkType->id)) {
throw new FireflyException(sprintf('Link type #%d cannot be resolved to an actual link type', intval($information['link_type_id']) ?? 0));
}
$link = new TransactionJournalLink;
$link->linkType()->associate($linkType);
if ('inward' === $information['direction']) {
Log::debug(sprintf('Link type is inwards ("%s"), so %d is source and %d is destination.', $linkType->inward, $left->id, $right->id));
$link->source()->associate($left);
$link->destination()->associate($right);
}
if ('outward' === $information['direction']) {
Log::debug(sprintf('Link type is inwards ("%s"), so %d is source and %d is destination.', $linkType->outward, $right->id, $left->id));
$link->source()->associate($right);
$link->destination()->associate($left);
}
$link->comment = $link['comments'] ?? null;
$link->save();
return $link;
}
/**
* @param TransactionJournalLink $link
*

View File

@@ -92,6 +92,17 @@ interface LinkTypeRepositoryInterface
*/
public function store(array $data): LinkType;
/**
* Store link between two journals.
*
* @param array $information
* @param TransactionJournal $left
* @param TransactionJournal $right
*
* @return mixed
*/
public function storeLink(array $information, TransactionJournal $left, TransactionJournal $right): TransactionJournalLink;
/**
* @param TransactionJournalLink $link
*