Fix test cases.

This commit is contained in:
James Cole
2018-02-28 20:18:47 +01:00
parent 46f4fa1a7d
commit fdd2dedfc6
23 changed files with 792 additions and 735 deletions

View File

@@ -25,7 +25,7 @@ namespace Tests\Api\V1\Controllers;
use Laravel\Passport\Passport;
use Tests\TestCase;
use Log;
/**
* Class AboutControllerTest
*/
@@ -38,6 +38,7 @@ class AboutControllerTest extends TestCase
{
parent::setUp();
Passport::actingAs($this->user());
Log::debug('Now in Api/AboutControllerTest.');
}
/**

View File

@@ -29,6 +29,7 @@ use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use Laravel\Passport\Passport;
use Tests\TestCase;
use Log;
/**
* Class AccountControllerTest
@@ -42,6 +43,7 @@ class AccountControllerTest extends TestCase
{
parent::setUp();
Passport::actingAs($this->user());
Log::debug('Now in Api/AccountControllerTest.');
}
/**

View File

@@ -28,6 +28,7 @@ use FireflyIII\Models\Bill;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use Illuminate\Pagination\LengthAwarePaginator;
use Laravel\Passport\Passport;
use Log;
use Tests\TestCase;
/**
@@ -42,6 +43,7 @@ class BillControllerTest extends TestCase
{
parent::setUp();
Passport::actingAs($this->user());
Log::debug('Now in Api/BillControllerTest.');
}

File diff suppressed because it is too large Load Diff

View File

@@ -32,6 +32,7 @@ use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use Illuminate\Support\Collection;
use Tests\TestCase;
use Log;
/**
* Class ConfigurationControllerTest
@@ -42,6 +43,15 @@ use Tests\TestCase;
*/
class ReconcileControllerTest extends TestCase
{
/**
*
*/
public function setUp()
{
parent::setUp();
Log::debug('Now in Feature/Controllers::ReconcileControllerTest.');
}
/**
* @covers \FireflyIII\Http\Controllers\Account\ReconcileController::edit
*/

View File

@@ -24,6 +24,7 @@ namespace Tests\Feature\Controllers\Admin;
use FireflyConfig;
use FireflyIII\Models\Configuration;
use Log;
use Tests\TestCase;
/**
@@ -35,6 +36,15 @@ use Tests\TestCase;
*/
class ConfigurationControllerTest extends TestCase
{
/**
*
*/
public function setUp()
{
parent::setUp();
Log::debug('Now in Feature/Controllers/Admin/ConfigurationControllerTest.');
}
/**
* @covers \FireflyIII\Http\Controllers\Admin\ConfigurationController::index
* @covers \FireflyIII\Http\Controllers\Admin\ConfigurationController::__construct

View File

@@ -24,6 +24,7 @@ namespace Tests\Feature\Controllers\Admin;
use Event;
use FireflyIII\Events\AdminRequestedTestMessage;
use Log;
use Tests\TestCase;
/**
@@ -35,6 +36,15 @@ use Tests\TestCase;
*/
class HomeControllerTest extends TestCase
{
/**
*
*/
public function setUp()
{
parent::setUp();
Log::debug('Now in Feature/Controllers/Admin/HomeControllerTest.');
}
/**
* @covers \FireflyIII\Http\Controllers\Admin\HomeController::index
* @covers \FireflyIII\Http\Controllers\Admin\HomeController::__construct

View File

@@ -26,7 +26,7 @@ use FireflyIII\Models\LinkType;
use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface;
use Illuminate\Support\Collection;
use Tests\TestCase;
use Log;
/**
* Class LinkControllerTest
*
@@ -36,6 +36,15 @@ use Tests\TestCase;
*/
class LinkControllerTest extends TestCase
{
/**
*
*/
public function setUp()
{
parent::setUp();
Log::debug('Now in Feature/Controllers/Admin/LinkControllerTest.');
}
/**
* @covers \FireflyIII\Http\Controllers\Admin\LinkController::__construct
* @covers \FireflyIII\Http\Controllers\Admin\LinkController::create

View File

@@ -30,6 +30,7 @@ use FireflyIII\Services\Github\Object\Release;
use FireflyIII\Services\Github\Request\UpdateRequest;
use Mockery;
use Tests\TestCase;
use Log;
/**
* Class UpdateControllerTest
@@ -40,6 +41,15 @@ use Tests\TestCase;
*/
class UpdateControllerTest extends TestCase
{
/**
*
*/
public function setUp()
{
parent::setUp();
Log::debug('Now in Feature/Controllers/Admin/UpdateControllerTest.');
}
/**
* @covers \FireflyIII\Http\Controllers\Admin\UpdateController::index
* @covers \FireflyIII\Http\Controllers\Admin\UpdateController::__construct

View File

@@ -25,7 +25,7 @@ namespace Tests\Feature\Controllers\Admin;
use FireflyIII\Repositories\User\UserRepositoryInterface;
use Illuminate\Support\Collection;
use Tests\TestCase;
use Log;
/**
* Class UserControllerTest
*
@@ -35,6 +35,15 @@ use Tests\TestCase;
*/
class UserControllerTest extends TestCase
{
/**
*
*/
public function setUp()
{
parent::setUp();
Log::debug('Now in Feature/Controllers/Admin/UserControllerTest.');
}
/**
* @covers \FireflyIII\Http\Controllers\Admin\UserController::delete
*/

View File

@@ -24,6 +24,7 @@ namespace Tests\Feature\Controllers\Auth;
use FireflyIII\Repositories\User\UserRepositoryInterface;
use Tests\TestCase;
use Log;
/**
* Class ForgotPasswordControllerTest
@@ -34,6 +35,15 @@ use Tests\TestCase;
*/
class ForgotPasswordControllerTest extends TestCase
{
/**
*
*/
public function setUp()
{
parent::setUp();
Log::debug('Now in Feature/Controllers/Auth/ForgotPasswordControllerTest.');
}
/**
* @covers \FireflyIII\Http\Controllers\Auth\ForgotPasswordController::__construct
* @covers \FireflyIII\Http\Controllers\Auth\ForgotPasswordController::sendResetLinkEmail

View File

@@ -26,6 +26,7 @@ use FireflyIII\Models\Preference;
use Google2FA;
use Preferences;
use Tests\TestCase;
use Log;
/**
* Class TwoFactorControllerTest
@@ -36,6 +37,15 @@ use Tests\TestCase;
*/
class TwoFactorControllerTest extends TestCase
{
/**
*
*/
public function setUp()
{
parent::setUp();
Log::debug('Now in Feature/Controllers/Auth/TwoFactorControllerTest.');
}
/**
* @covers \FireflyIII\Http\Controllers\Auth\TwoFactorController::index
*/

View File

@@ -29,6 +29,7 @@ use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\Repositories\Journal\JournalTaskerInterface;
use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection;
use Tests\TestCase;
@@ -270,9 +271,10 @@ class TransactionControllerTest extends TestCase
public function testShow()
{
// mock stuff
$repository = $this->mock(JournalRepositoryInterface::class);
$tasker = $this->mock(JournalTaskerInterface::class);
$repository->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$linkRepos = $this->mock(LinkTypeRepositoryInterface::class);
$linkRepos->shouldReceive('get')->andReturn(new Collection);
$linkRepos->shouldReceive('getLinks')->andReturn(new Collection);
$tasker->shouldReceive('getPiggyBankEvents')->andReturn(new Collection);
$tasker->shouldReceive('getTransactionsOverview')->andReturn([]);
@@ -289,9 +291,10 @@ class TransactionControllerTest extends TestCase
*/
public function testShowOpeningBalance()
{
// mock stuff
$repository = $this->mock(JournalRepositoryInterface::class);
$repository->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$tasker = $this->mock(JournalTaskerInterface::class);
$linkRepos = $this->mock(LinkTypeRepositoryInterface::class);
$linkRepos->shouldReceive('get')->andReturn(new Collection);
$linkRepos->shouldReceive('getLinks')->andReturn(new Collection);
$this->be($this->user());
$journal = $this->user()->transactionJournals()->where('transaction_type_id', 4)->first();

View File

@@ -26,6 +26,11 @@ namespace Tests\Unit\Import\FileProcessor;
use FireflyIII\Import\FileProcessor\CsvProcessor;
use FireflyIII\Import\Specifics\AbnAmroDescription;
use FireflyIII\Models\ImportJob;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface;
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface;
use Mockery;
use Tests\TestCase;
@@ -61,6 +66,18 @@ class CsvProcessorTest extends TestCase
*/
public function testRunBadRole()
{
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$budRepos = $this->mock(BudgetRepositoryInterface::class);
$jobRepos = $this->mock(ImportJobRepositoryInterface::class);
$catRepos = $this->mock(CategoryRepositoryInterface::class);
$billRepos = $this->mock(BillRepositoryInterface::class);
$currencyRepos = $this->mock(CurrencyRepositoryInterface::class);
$accountRepos->shouldReceive('setUser');
$budRepos->shouldReceive('setUser');
$catRepos->shouldReceive('setUser');
$billRepos->shouldReceive('setUser');
// data
$config = [
'column-roles' => [
@@ -72,16 +89,15 @@ class CsvProcessorTest extends TestCase
$csvFile = '20170101,-12.34,"Some description"';
// mock stuff
$repository = $this->mock(ImportJobRepositoryInterface::class);
$repository->shouldReceive('setUser')->withArgs([Mockery::any()])->once();
$repository->shouldReceive('getConfiguration')->andReturn($config);
$repository->shouldReceive('uploadFileContents')->withArgs([Mockery::any()])->andReturn($csvFile)->once();
//$repository->shouldReceive('getExtendedStatus')->once()->andReturn([]);
//$repository->shouldReceive('setExtendedStatus')->once()->andReturn($job);
$repository->shouldReceive('addStepsDone')->twice();
$jobRepos->shouldReceive('setUser')->withArgs([Mockery::any()])->once();
$jobRepos->shouldReceive('getConfiguration')->andReturn($config);
$jobRepos->shouldReceive('uploadFileContents')->withArgs([Mockery::any()])->andReturn($csvFile)->once();
$jobRepos->shouldReceive('addStepsDone')->twice();
// mock stuff for this single row:
$repository->shouldReceive('countByHash')->once()->withArgs([Mockery::any()])->andReturn(0);
$jobRepos->shouldReceive('countByHash')->once()->withArgs([Mockery::any()])->andReturn(0);
$processor = new CsvProcessor();
$processor->setJob($job);
$processor->run();
@@ -186,8 +202,8 @@ class CsvProcessorTest extends TestCase
$repository->shouldReceive('setUser')->withArgs([Mockery::any()])->once();
$repository->shouldReceive('getConfiguration')->andReturn($config);
$repository->shouldReceive('uploadFileContents')->withArgs([Mockery::any()])->andReturn($csvFile)->once();
// $repository->shouldReceive('getExtendedStatus')->once()->andReturn([]);
// $repository->shouldReceive('setExtendedStatus')->once()->andReturn($job);
// $repository->shouldReceive('getExtendedStatus')->once()->andReturn([]);
// $repository->shouldReceive('setExtendedStatus')->once()->andReturn($job);
// mock stuff for this single row:
$repository->shouldReceive('countByHash')->once()->withArgs([Mockery::any()])->andReturn(0);
$repository->shouldReceive('addStepsDone')->times(2)->withArgs([Mockery::any(), 1]);
@@ -223,6 +239,18 @@ class CsvProcessorTest extends TestCase
*/
public function testRunSingle()
{
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$budRepos = $this->mock(BudgetRepositoryInterface::class);
$jobRepos = $this->mock(ImportJobRepositoryInterface::class);
$catRepos = $this->mock(CategoryRepositoryInterface::class);
$billRepos = $this->mock(BillRepositoryInterface::class);
$currencyRepos = $this->mock(CurrencyRepositoryInterface::class);
$accountRepos->shouldReceive('setUser');
$budRepos->shouldReceive('setUser');
$catRepos->shouldReceive('setUser');
$billRepos->shouldReceive('setUser');
// data
$config = [];
$job = $this->getJob($config);
@@ -230,15 +258,13 @@ class CsvProcessorTest extends TestCase
$extended = ['steps' => 0, 'done' => 0];
// mock stuff
$repository = $this->mock(ImportJobRepositoryInterface::class);
$repository->shouldReceive('setUser')->withArgs([Mockery::any()])->once();
$repository->shouldReceive('getConfiguration')->andReturn($config);
$repository->shouldReceive('uploadFileContents')->withArgs([Mockery::any()])->andReturn($csvFile)->once();
// $repository->shouldReceive('getExtendedStatus')->once()->andReturn([]);
// $repository->shouldReceive('setExtendedStatus')->once()->andReturn($job);
$jobRepos->shouldReceive('setUser')->withArgs([Mockery::any()])->once();
$jobRepos->shouldReceive('getConfiguration')->andReturn($config);
$jobRepos->shouldReceive('uploadFileContents')->withArgs([Mockery::any()])->andReturn($csvFile)->once();
// mock stuff for this single row:
$repository->shouldReceive('countByHash')->once()->withArgs([Mockery::any()])->andReturn(0);
$repository->shouldReceive('addStepsDone')->times(3)->withArgs([Mockery::any(), 1]);
$jobRepos->shouldReceive('countByHash')->once()->withArgs([Mockery::any()])->andReturn(0);
$jobRepos->shouldReceive('addStepsDone')->times(3)->withArgs([Mockery::any(), 1]);
$processor = new CsvProcessor();
$processor->setJob($job);
$processor->run();
@@ -260,6 +286,18 @@ class CsvProcessorTest extends TestCase
*/
public function testRunSpecific()
{
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$budRepos = $this->mock(BudgetRepositoryInterface::class);
$jobRepos = $this->mock(ImportJobRepositoryInterface::class);
$catRepos = $this->mock(CategoryRepositoryInterface::class);
$billRepos = $this->mock(BillRepositoryInterface::class);
$currencyRepos = $this->mock(CurrencyRepositoryInterface::class);
$accountRepos->shouldReceive('setUser');
$budRepos->shouldReceive('setUser');
$catRepos->shouldReceive('setUser');
$billRepos->shouldReceive('setUser');
// data
$config = [
'specifics' => ['AbnAmroDescription' => 1],
@@ -270,15 +308,12 @@ class CsvProcessorTest extends TestCase
$extended = ['steps' => 0, 'done' => 0];
// mock stuff
$repository = $this->mock(ImportJobRepositoryInterface::class);
$repository->shouldReceive('setUser')->withArgs([Mockery::any()])->once();
$repository->shouldReceive('getConfiguration')->andReturn($config);
$repository->shouldReceive('uploadFileContents')->withArgs([Mockery::any()])->andReturn($csvFile)->once();
// $repository->shouldReceive('getExtendedStatus')->once()->andReturn([]);
// $repository->shouldReceive('setExtendedStatus')->once()->andReturn($job);
$jobRepos->shouldReceive('setUser')->withArgs([Mockery::any()])->once();
$jobRepos->shouldReceive('getConfiguration')->andReturn($config);
$jobRepos->shouldReceive('uploadFileContents')->withArgs([Mockery::any()])->andReturn($csvFile)->once();
// mock stuff for this single row:
$repository->shouldReceive('countByHash')->once()->withArgs([Mockery::any()])->andReturn(0);
$repository->shouldReceive('addStepsDone')->times(3)->withArgs([Mockery::any(), 1]);
$jobRepos->shouldReceive('countByHash')->once()->withArgs([Mockery::any()])->andReturn(0);
$jobRepos->shouldReceive('addStepsDone')->times(3)->withArgs([Mockery::any(), 1]);
// mock specific:
$specific = $this->mock(AbnAmroDescription::class);

View File

@@ -1230,17 +1230,20 @@ class BinderTest extends TestCase
*/
public function testTagList()
{
$tagRepos = $this->mock(TagRepositoryInterface::class);
$tagRepos->shouldReceive('setUser');
$tags = $this->user()->tags()->whereIn('id', [1, 2])->get(['tags.*']);
$tagRepos->shouldReceive('get')->once()->andReturn($tags);
Route::middleware(Binder::class)->any(
'/_test/binder/{tagList}', function (Collection $tags) {
return 'count: ' . $tags->count();
}
);
$tags = $this->user()->tags()->whereIn('id', [1, 2])->get(['tags.*']);
$names = join(',', $tags->pluck('tag')->toArray());
$repository = $this->mock(TagRepositoryInterface::class);
$repository->shouldReceive('setUser');
$repository->shouldReceive('get')->once()->andReturn($tags);
$this->be($this->user());
$response = $this->get('/_test/binder/' . $names);
@@ -1256,6 +1259,10 @@ class BinderTest extends TestCase
*/
public function testTagListEmpty()
{
$tagRepos = $this->mock(TagRepositoryInterface::class);
$tagRepos->shouldReceive('setUser');
$tagRepos->shouldReceive('get')->once()->andReturn(new Collection());
Route::middleware(Binder::class)->any(
'/_test/binder/{tagList}', function (Collection $tags) {
return 'count: ' . $tags->count();

View File

@@ -24,7 +24,9 @@ namespace Tests\Unit\TransactionRules\Actions;
use FireflyIII\Models\RuleAction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\TransactionRules\Actions\SetBudget;
use Illuminate\Support\Collection;
use Tests\TestCase;
/**
@@ -39,8 +41,12 @@ class SetBudgetTest extends TestCase
public function testAct()
{
// get journal, remove all budgets
$journal = TransactionJournal::find(12);
$budget = $journal->user->budgets()->first();
$journal = TransactionJournal::find(12);
$budget = $journal->user->budgets()->first();
$budgetRepos = $this->mock(BudgetRepositoryInterface::class);
$budgetRepos->shouldReceive('setUser');
$budgetRepos->shouldReceive('getActiveBudgets')->andReturn(new Collection([$budget]));
$journal->budgets()->detach();
$this->assertEquals(0, $journal->budgets()->count());

View File

@@ -24,6 +24,7 @@ namespace Tests\Unit\TransactionRules\Actions;
use FireflyIII\Models\RuleAction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface;
use FireflyIII\TransactionRules\Actions\SetCategory;
use Tests\TestCase;

View File

@@ -28,6 +28,7 @@ use FireflyIII\Models\RuleAction;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\TransactionRules\Actions\SetDestinationAccount;
use Tests\TestCase;
@@ -47,6 +48,7 @@ class SetDestinationAccountTest extends TestCase
*/
public function testActDepositExisting()
{
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$type = TransactionType::whereType(TransactionType::DEPOSIT)->first();
$journal = TransactionJournal::where('transaction_type_id', $type->id)->first();
$destinationTr = $journal->transactions()->where('amount', '>', 0)->first();
@@ -56,6 +58,10 @@ class SetDestinationAccountTest extends TestCase
$account = $user->accounts()->where('account_type_id', $accountType->id)->where('id', '!=', $destination->id)->first();
$this->assertNotEquals($destination->id, $account->id);
// find account? Return account:
$accountRepos->shouldReceive('setUser');
$accountRepos->shouldReceive('findByName')->andReturn($account);
// fire the action:
$ruleAction = new RuleAction;
$ruleAction->action_value = $account->name;
@@ -71,34 +77,6 @@ class SetDestinationAccountTest extends TestCase
$this->assertEquals($newDestination->id, $account->id);
}
/**
* Give deposit new asset account (will fail)
*
* @covers \FireflyIII\TransactionRules\Actions\SetDestinationAccount::__construct()
* @covers \FireflyIII\TransactionRules\Actions\SetDestinationAccount::act()
* @covers \FireflyIII\TransactionRules\Actions\SetDestinationAccount::findAssetAccount()
*/
public function testActDepositNew()
{
$type = TransactionType::whereType(TransactionType::DEPOSIT)->first();
$journal = TransactionJournal::where('transaction_type_id', $type->id)->first();
$destinationTr = $journal->transactions()->where('amount', '>', 0)->first();
$destination = $destinationTr->account;
// fire the action:
$ruleAction = new RuleAction;
$ruleAction->action_value = 'Some new asset ' . rand(1, 1000);
$action = new SetDestinationAccount($ruleAction);
$result = $action->act($journal);
$this->assertFalse($result);
// test journal for still having old account
$journal = TransactionJournal::find($journal->id);
$destinationTr = $journal->transactions()->where('amount', '>', 0)->first();
$newDestination = $destinationTr->account;
$this->assertEquals($destination->id, $newDestination->id);
}
/**
* Give withdrawal existing expense account.
*
@@ -108,6 +86,7 @@ class SetDestinationAccountTest extends TestCase
*/
public function testActWithdrawalExisting()
{
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$type = TransactionType::whereType(TransactionType::WITHDRAWAL)->first();
$journal = TransactionJournal::where('transaction_type_id', $type->id)->first();
$destinationTr = $journal->transactions()->where('amount', '>', 0)->first();
@@ -117,6 +96,10 @@ class SetDestinationAccountTest extends TestCase
$account = $user->accounts()->where('account_type_id', $accountType->id)->where('id', '!=', $destination->id)->first();
$this->assertNotEquals($destination->id, $account->id);
// find account? Return account:
$accountRepos->shouldReceive('setUser');
$accountRepos->shouldReceive('findByName')->andReturn($account);
// fire the action:
$ruleAction = new RuleAction;
$ruleAction->action_value = $account->name;
@@ -132,34 +115,6 @@ class SetDestinationAccountTest extends TestCase
$this->assertEquals($newDestination->id, $account->id);
}
/**
* Give withdrawal new expense account.
*
* @covers \FireflyIII\TransactionRules\Actions\SetDestinationAccount::__construct()
* @covers \FireflyIII\TransactionRules\Actions\SetDestinationAccount::act()
* @covers \FireflyIII\TransactionRules\Actions\SetDestinationAccount::findExpenseAccount
*/
public function testActWithdrawalNew()
{
$type = TransactionType::whereType(TransactionType::WITHDRAWAL)->first();
$journal = TransactionJournal::where('transaction_type_id', $type->id)->first();
$destinationTr = $journal->transactions()->where('amount', '>', 0)->first();
$destination = $destinationTr->account;
// fire the action:
$ruleAction = new RuleAction;
$ruleAction->action_value = 'Some new expense ' . rand(1, 1000);
$action = new SetDestinationAccount($ruleAction);
$result = $action->act($journal);
$this->assertTrue($result);
// test journal for new account
$journal = TransactionJournal::find($journal->id);
$destinationTr = $journal->transactions()->where('amount', '>', 0)->first();
$newDestination = $destinationTr->account;
$this->assertNotEquals($destination->id, $newDestination->id);
}
/**
* Test this on a split journal.
*
@@ -168,10 +123,15 @@ class SetDestinationAccountTest extends TestCase
*/
public function testSplitJournal()
{
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$transaction = Transaction::orderBy('count', 'DESC')->groupBy('transaction_journal_id')
->get(['transaction_journal_id', DB::raw('COUNT(transaction_journal_id) as count')])
->first();
$journal = TransactionJournal::find($transaction->transaction_journal_id);
// mock
$accountRepos->shouldReceive('setUser');
// fire the action:
$ruleAction = new RuleAction;
$ruleAction->action_value = 'Some new asset ' . rand(1, 1000);

View File

@@ -28,6 +28,7 @@ use FireflyIII\Models\RuleAction;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\TransactionRules\Actions\SetSourceAccount;
use Tests\TestCase;
@@ -45,6 +46,9 @@ class SetSourceAccountTest extends TestCase
*/
public function testActDepositExistingUpdated()
{
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$type = TransactionType::whereType(TransactionType::DEPOSIT)->first();
$journal = TransactionJournal::where('transaction_type_id', $type->id)->first();
$sourceTr = $journal->transactions()->where('amount', '<', 0)->first();
@@ -54,6 +58,10 @@ class SetSourceAccountTest extends TestCase
$account = $user->accounts()->where('account_type_id', $accountType->id)->where('id', '!=', $source->id)->first();
$this->assertNotEquals($source->id, $account->id);
// find account? Return account:
$accountRepos->shouldReceive('setUser');
$accountRepos->shouldReceive('findByName')->andReturn($account);
// fire the action:
$ruleAction = new RuleAction;
$ruleAction->action_value = $account->name;
@@ -69,34 +77,6 @@ class SetSourceAccountTest extends TestCase
$this->assertEquals($newSource->id, $account->id);
}
/**
* Give deposit new revenue account.
*
* @covers \FireflyIII\TransactionRules\Actions\SetSourceAccount::__construct()
* @covers \FireflyIII\TransactionRules\Actions\SetSourceAccount::act()
* @covers \FireflyIII\TransactionRules\Actions\SetSourceAccount::findRevenueAccount
*/
public function testActDepositNewUpdated()
{
$type = TransactionType::whereType(TransactionType::DEPOSIT)->first();
$journal = TransactionJournal::where('transaction_type_id', $type->id)->first();
$sourceTr = $journal->transactions()->where('amount', '<', 0)->first();
$source = $sourceTr->account;
// fire the action:
$ruleAction = new RuleAction;
$ruleAction->action_value = 'Some new revenue ' . rand(1, 1000);
$action = new SetSourceAccount($ruleAction);
$result = $action->act($journal);
$this->assertTrue($result);
// test journal for new account
$journal = TransactionJournal::find($journal->id);
$sourceTr = $journal->transactions()->where('amount', '<', 0)->first();
$newSource = $sourceTr->account;
$this->assertNotEquals($source->id, $newSource->id);
}
/**
* Give withdrawal existing asset account.
*
@@ -106,15 +86,20 @@ class SetSourceAccountTest extends TestCase
*/
public function testActWithdrawalExistingUpdated()
{
$type = TransactionType::whereType(TransactionType::WITHDRAWAL)->first();
$journal = TransactionJournal::where('transaction_type_id', $type->id)->first();
$sourceTr = $journal->transactions()->where('amount', '<', 0)->first();
$source = $sourceTr->account;
$user = $journal->user;
$accountType = AccountType::whereType(AccountType::ASSET)->first();
$account = $user->accounts()->where('account_type_id', $accountType->id)->where('id', '!=', $source->id)->first();
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$type = TransactionType::whereType(TransactionType::WITHDRAWAL)->first();
$journal = TransactionJournal::where('transaction_type_id', $type->id)->first();
$sourceTr = $journal->transactions()->where('amount', '<', 0)->first();
$source = $sourceTr->account;
$user = $journal->user;
$accountType = AccountType::whereType(AccountType::ASSET)->first();
$account = $user->accounts()->where('account_type_id', $accountType->id)->where('id', '!=', $source->id)->first();
$this->assertNotEquals($source->id, $account->id);
$accountRepos->shouldReceive('setUser');
$accountRepos->shouldReceive('findByName')->andReturn($account);
// fire the action:
$ruleAction = new RuleAction;
$ruleAction->action_value = $account->name;
@@ -130,34 +115,6 @@ class SetSourceAccountTest extends TestCase
$this->assertEquals($newSource->id, $account->id);
}
/**
* Give withdrawal new asset account (will fail)
*
* @covers \FireflyIII\TransactionRules\Actions\SetSourceAccount::__construct()
* @covers \FireflyIII\TransactionRules\Actions\SetSourceAccount::act()
* @covers \FireflyIII\TransactionRules\Actions\SetSourceAccount::findAssetAccount()
*/
public function testActWithdrawalNew()
{
$type = TransactionType::whereType(TransactionType::WITHDRAWAL)->first();
$journal = TransactionJournal::where('transaction_type_id', $type->id)->first();
$sourceTr = $journal->transactions()->where('amount', '<', 0)->first();
$source = $sourceTr->account;
// fire the action:
$ruleAction = new RuleAction;
$ruleAction->action_value = 'Some new asset ' . rand(1, 1000);
$action = new SetSourceAccount($ruleAction);
$result = $action->act($journal);
$this->assertFalse($result);
// test journal for still having old account
$journal = TransactionJournal::find($journal->id);
$sourceTr = $journal->transactions()->where('amount', '<', 0)->first();
$newSource = $sourceTr->account;
$this->assertEquals($source->id, $newSource->id);
}
/**
* Test this on a split journal.
*
@@ -166,10 +123,14 @@ class SetSourceAccountTest extends TestCase
*/
public function testSplitJournal()
{
$transaction = Transaction::orderBy('count', 'DESC')->groupBy('transaction_journal_id')
->get(['transaction_journal_id', DB::raw('COUNT(transaction_journal_id) as count')])
->first();
$journal = TransactionJournal::find($transaction->transaction_journal_id);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$transaction = Transaction::orderBy('count', 'DESC')->groupBy('transaction_journal_id')
->get(['transaction_journal_id', DB::raw('COUNT(transaction_journal_id) as count')])
->first();
$journal = TransactionJournal::find($transaction->transaction_journal_id);
// mock
$accountRepos->shouldReceive('setUser');
// fire the action:
$ruleAction = new RuleAction;
$ruleAction->action_value = 'Some new asset ' . rand(1, 1000);

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace Tests\Unit\TransactionRules\Triggers;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\TransactionRules\Triggers\AmountExactly;
use Tests\TestCase;
@@ -36,7 +37,11 @@ class AmountExactlyTest extends TestCase
*/
public function testTriggeredExact()
{
$journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('setUser');
$journalRepos->shouldReceive('getJournalTotal')->andReturn('12.34');
$journal = new TransactionJournal;
$journal->user = $this->user();
$journal->destination_amount = '12.34';
$trigger = AmountExactly::makeFromStrings('12.340', false);
$result = $trigger->triggered($journal);
@@ -48,7 +53,11 @@ class AmountExactlyTest extends TestCase
*/
public function testTriggeredNotExact()
{
$journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('setUser');
$journalRepos->shouldReceive('getJournalTotal')->andReturn('12.34');
$journal = new TransactionJournal;
$journal->user = $this->user();
$journal->destination_amount = '12.35';
$trigger = AmountExactly::makeFromStrings('12.340', false);
$result = $trigger->triggered($journal);

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace Tests\Unit\TransactionRules\Triggers;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\TransactionRules\Triggers\AmountLess;
use Tests\TestCase;
@@ -36,8 +37,13 @@ class AmountLessTest extends TestCase
*/
public function testTriggeredExact()
{
$journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('setUser');
$journalRepos->shouldReceive('getJournalTotal')->andReturn('12.35');
$journal = new TransactionJournal;
$journal->destination_amount = '12.35';
$journal->user = $this->user();
$trigger = AmountLess::makeFromStrings('12.35', false);
$result = $trigger->triggered($journal);
$this->assertFalse($result);
@@ -48,8 +54,13 @@ class AmountLessTest extends TestCase
*/
public function testTriggeredLess()
{
$journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('setUser');
$journalRepos->shouldReceive('getJournalTotal')->andReturn('12.34');
$journal = new TransactionJournal;
$journal->destination_amount = '12.34';
$journal->user = $this->user();
$trigger = AmountLess::makeFromStrings('12.50', false);
$result = $trigger->triggered($journal);
$this->assertTrue($result);
@@ -60,8 +71,13 @@ class AmountLessTest extends TestCase
*/
public function testTriggeredNotLess()
{
$journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('setUser');
$journalRepos->shouldReceive('getJournalTotal')->andReturn('12.35');
$journal = new TransactionJournal;
$journal->destination_amount = '12.35';
$journal->user = $this->user();
$trigger = AmountLess::makeFromStrings('12.00', false);
$result = $trigger->triggered($journal);
$this->assertFalse($result);

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace Tests\Unit\TransactionRules\Triggers;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\TransactionRules\Triggers\AmountMore;
use Tests\TestCase;
@@ -36,7 +37,12 @@ class AmountMoreTest extends TestCase
*/
public function testTriggeredExact()
{
$journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('setUser');
$journalRepos->shouldReceive('getJournalTotal')->andReturn('12.35');
$journal = new TransactionJournal;
$journal->user = $this->user();
$journal->destination_amount = '12.35';
$trigger = AmountMore::makeFromStrings('12.35', false);
$result = $trigger->triggered($journal);
@@ -48,7 +54,12 @@ class AmountMoreTest extends TestCase
*/
public function testTriggeredMore()
{
$journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('setUser');
$journalRepos->shouldReceive('getJournalTotal')->andReturn('12.34');
$journal = new TransactionJournal;
$journal->user = $this->user();
$journal->destination_amount = '12.34';
$trigger = AmountMore::makeFromStrings('12.10', false);
$result = $trigger->triggered($journal);
@@ -60,7 +71,12 @@ class AmountMoreTest extends TestCase
*/
public function testTriggeredNotMore()
{
$journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('setUser');
$journalRepos->shouldReceive('getJournalTotal')->andReturn('12.35');
$journal = new TransactionJournal;
$journal->user = $this->user();
$journal->destination_amount = '12.35';
$trigger = AmountMore::makeFromStrings('12.50', false);
$result = $trigger->triggered($journal);

View File

@@ -29,6 +29,7 @@ use FireflyIII\Models\AccountMeta;
use FireflyIII\Models\Note;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Transformers\AccountTransformer;
use Symfony\Component\HttpFoundation\ParameterBag;
use Tests\TestCase;
@@ -45,6 +46,10 @@ class AccountTransformerTest extends TestCase
*/
public function testBasic()
{
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$accountRepos->shouldReceive('setUser');
$accountRepos->shouldReceive('getOpeningBalanceAmount')->andReturn(null);
$accountRepos->shouldReceive('getOpeningBalanceDate')->andReturn(null);
// make new account:
$account = Account::create(
[
@@ -76,6 +81,10 @@ class AccountTransformerTest extends TestCase
*/
public function testBasicDate()
{
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$accountRepos->shouldReceive('setUser');
$accountRepos->shouldReceive('getOpeningBalanceAmount')->andReturn(null);
$accountRepos->shouldReceive('getOpeningBalanceDate')->andReturn(null);
// make new account:
$account = Account::create(
[
@@ -108,6 +117,10 @@ class AccountTransformerTest extends TestCase
*/
public function testCCDataAsset()
{
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$accountRepos->shouldReceive('setUser');
$accountRepos->shouldReceive('getOpeningBalanceAmount')->andReturn(null);
$accountRepos->shouldReceive('getOpeningBalanceDate')->andReturn(null);
// make new account:
$account = Account::create(
[
@@ -262,6 +275,10 @@ class AccountTransformerTest extends TestCase
*/
public function testOpeningBalance()
{
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$accountRepos->shouldReceive('setUser');
$accountRepos->shouldReceive('getOpeningBalanceAmount')->andReturn('45.67');
$accountRepos->shouldReceive('getOpeningBalanceDate')->andReturn('2018-01-01');
// make new account:
$account = Account::create(
[
@@ -313,6 +330,10 @@ class AccountTransformerTest extends TestCase
*/
public function testWithCurrency()
{
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$accountRepos->shouldReceive('setUser');
$accountRepos->shouldReceive('getOpeningBalanceAmount')->andReturn(null);
$accountRepos->shouldReceive('getOpeningBalanceDate')->andReturn(null);
// make new account:
$account = Account::create(
[
@@ -352,6 +373,10 @@ class AccountTransformerTest extends TestCase
*/
public function testWithNotes()
{
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$accountRepos->shouldReceive('setUser');
$accountRepos->shouldReceive('getOpeningBalanceAmount')->andReturn(null);
$accountRepos->shouldReceive('getOpeningBalanceDate')->andReturn(null);
// make new account:
$account = Account::create(
[