From 1a643e20428ea395b1e536dc98849797280d04a5 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 25 Feb 2018 17:38:24 +0100 Subject: [PATCH] Expand tests --- .../Transaction/SplitController.php | 5 +- app/Http/Requests/SplitJournalFormRequest.php | 2 +- .../Transaction/SingleControllerTest.php | 143 ++++++++++++++---- .../Transaction/SplitControllerTest.php | 68 +++++++-- 4 files changed, 172 insertions(+), 46 deletions(-) diff --git a/app/Http/Controllers/Transaction/SplitController.php b/app/Http/Controllers/Transaction/SplitController.php index cb5e138c15..bb6f0fe79e 100644 --- a/app/Http/Controllers/Transaction/SplitController.php +++ b/app/Http/Controllers/Transaction/SplitController.php @@ -143,9 +143,6 @@ class SplitController extends Controller } $data = $request->getAll(); $journal = $this->repository->update($journal, $data); - var_dump($request->all()); - var_dump($data); - exit; /** @var array $files */ $files = $request->hasFile('attachments') ? $request->file('attachments') : null; @@ -161,7 +158,7 @@ class SplitController extends Controller // @codeCoverageIgnoreEnd $type = strtolower($this->repository->getTransactionType($journal)); - Session::flash('success', strval(trans('firefly.updated_' . $type, ['description' => $data['journal_description']]))); + Session::flash('success', strval(trans('firefly.updated_' . $type, ['description' => $data['description']]))); Preferences::mark(); // @codeCoverageIgnoreStart diff --git a/app/Http/Requests/SplitJournalFormRequest.php b/app/Http/Requests/SplitJournalFormRequest.php index 80f9004bdf..a15a9ac203 100644 --- a/app/Http/Requests/SplitJournalFormRequest.php +++ b/app/Http/Requests/SplitJournalFormRequest.php @@ -84,7 +84,7 @@ class SplitJournalFormRequest extends Request 'destination_id' => $destinationId, 'destination_name' => $destinationName, 'foreign_amount' => $foreignAmount, - 'foreign_currency_id' => $foreignCurrency, + 'foreign_currency_id' => null, 'foreign_currency_code' => null, 'reconciled' => false, 'identifier' => $index, diff --git a/tests/Feature/Controllers/Transaction/SingleControllerTest.php b/tests/Feature/Controllers/Transaction/SingleControllerTest.php index f9f357c3f5..703d891eb2 100644 --- a/tests/Feature/Controllers/Transaction/SingleControllerTest.php +++ b/tests/Feature/Controllers/Transaction/SingleControllerTest.php @@ -129,19 +129,26 @@ class SingleControllerTest extends TestCase */ public function testEdit() { + $account = $this->user()->accounts()->first(); $repository = $this->mock(AccountRepositoryInterface::class); $repository->shouldReceive('getAccountsByType')->once()->withArgs([[AccountType::DEFAULT, AccountType::ASSET]])->andReturn(new Collection); $budgetRepos = $this->mock(BudgetRepositoryInterface::class); $budgetRepos->shouldReceive('getBudgets')->andReturn(new Collection)->once(); - $note = new Note(); - $note->id = 5; - $note->text = 'I see you...'; - $repository = $this->mock(JournalRepositoryInterface::class); - $repository->shouldReceive('getNote')->andReturn($note)->once(); - $repository->shouldReceive('first')->once()->andReturn(new TransactionJournal); - $repository->shouldReceive('countTransactions')->andReturn(2); + $journalRepos = $this->mock(JournalRepositoryInterface::class); + $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); + $journalRepos->shouldReceive('countTransactions')->andReturn(2)->once(); + $journalRepos->shouldReceive('getTransactionType')->andReturn('Withdrawal')->once(); + $journalRepos->shouldReceive('getJournalSourceAccounts')->andReturn(new Collection([$account]))->once(); + $journalRepos->shouldReceive('getJournalDestinationAccounts')->andReturn(new Collection([$account]))->once(); + $journalRepos->shouldReceive('getNoteText')->andReturn('Some Note')->once(); + $journalRepos->shouldReceive('getFirstPosTransaction')->andReturn(new Transaction)->once(); + $journalRepos->shouldReceive('getJournalDate')->withAnyArgs()->andReturn('2017-09-01'); + $journalRepos->shouldReceive('getMetaField')->withAnyArgs()->andReturn('')->once(); + $journalRepos->shouldReceive('getJournalCategoryName')->once()->andReturn(''); + $journalRepos->shouldReceive('getJournalBudgetId')->once()->andReturn(0); + $journalRepos->shouldReceive('getTags')->once()->andReturn([]); $this->be($this->user()); $withdrawal = TransactionJournal::where('transaction_type_id', 1)->whereNull('deleted_at')->where('user_id', $this->user()->id)->first(); @@ -163,14 +170,33 @@ class SingleControllerTest extends TestCase $budgetRepos = $this->mock(BudgetRepositoryInterface::class); $budgetRepos->shouldReceive('getBudgets')->andReturn(new Collection)->once(); + $account = $this->user()->accounts()->first(); + $cash = $this->user()->accounts()->where('account_type_id', 2)->first(); + $journalRepos = $this->mock(JournalRepositoryInterface::class); + + $journalRepos->shouldReceive('countTransactions')->andReturn(2)->once(); + $journalRepos->shouldReceive('getTransactionType')->andReturn('Deposit')->once(); + $journalRepos->shouldReceive('getJournalSourceAccounts')->andReturn(new Collection([$cash]))->once(); + $journalRepos->shouldReceive('getJournalDestinationAccounts')->andReturn(new Collection([$account]))->once(); + $journalRepos->shouldReceive('getNoteText')->andReturn('Some Note')->once(); + $journalRepos->shouldReceive('getFirstPosTransaction')->andReturn(new Transaction)->once(); + $journalRepos->shouldReceive('getJournalDate')->withAnyArgs()->andReturn('2017-09-01'); + $journalRepos->shouldReceive('getMetaField')->withAnyArgs()->andReturn('')->once(); + $journalRepos->shouldReceive('getJournalCategoryName')->once()->andReturn(''); + $journalRepos->shouldReceive('getJournalBudgetId')->once()->andReturn(0); + $journalRepos->shouldReceive('getTags')->once()->andReturn([]); + $this->be($this->user()); - $withdrawal = Transaction::leftJoin('accounts', 'transactions.account_id', '=', 'accounts.id') - ->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id') - ->where('accounts.account_type_id', 2) - ->where('transaction_journals.transaction_type_id', 2) - ->whereNull('transaction_journals.deleted_at') - ->where('transaction_journals.user_id', $this->user()->id)->first(['transactions.transaction_journal_id']); - $response = $this->get(route('transactions.edit', [$withdrawal->transaction_journal_id])); + $deposit = Transaction::leftJoin('accounts', 'transactions.account_id', '=', 'accounts.id') + ->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id') + ->where('accounts.account_type_id', 2) + ->where('transaction_journals.transaction_type_id', 2) + ->whereNull('transaction_journals.deleted_at') + ->where('transaction_journals.user_id', $this->user()->id)->first(['transactions.*']); + + $journalRepos->shouldReceive('first')->once()->andReturn($deposit->transactionJournal); + + $response = $this->get(route('transactions.edit', [$deposit->transaction_journal_id])); $response->assertStatus(200); // has bread crumb $response->assertSee('