This should fix tests

This commit is contained in:
James Cole 2017-03-16 20:46:18 +01:00
parent d618ddc8c5
commit 2db8d25038
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
9 changed files with 147 additions and 51 deletions

View File

@ -287,7 +287,7 @@ class JsonController extends Controller
{ {
$pref = Preferences::get('tour', true); $pref = Preferences::get('tour', true);
if (!$pref) { if (!$pref) {
throw new FireflyException('Cannot find preference for tour. Exit.'); throw new FireflyException('Cannot find preference for tour. Exit.'); // @codeCoverageIgnore
} }
$headers = ['main-content', 'sidebar-toggle', 'account-menu', 'budget-menu', 'report-menu', 'transaction-menu', 'option-menu', 'main-content-end']; $headers = ['main-content', 'sidebar-toggle', 'account-menu', 'budget-menu', 'report-menu', 'transaction-menu', 'option-menu', 'main-content-end'];
$steps = []; $steps = [];

View File

@ -113,7 +113,7 @@ class CurrencyRepository implements CurrencyRepositoryInterface
*/ */
public function findByCode(string $currencyCode): TransactionCurrency public function findByCode(string $currencyCode): TransactionCurrency
{ {
$currency = TransactionCurrency::whereCode($currencyCode)->first(); $currency = TransactionCurrency::where('code', $currencyCode)->first();
if (is_null($currency)) { if (is_null($currency)) {
$currency = new TransactionCurrency; $currency = new TransactionCurrency;
} }
@ -170,7 +170,7 @@ class CurrencyRepository implements CurrencyRepositoryInterface
*/ */
public function getCurrencyByPreference(Preference $preference): TransactionCurrency public function getCurrencyByPreference(Preference $preference): TransactionCurrency
{ {
$preferred = TransactionCurrency::whereCode($preference->data)->first(); $preferred = TransactionCurrency::where('code', $preference->data)->first();
if (is_null($preferred)) { if (is_null($preferred)) {
$preferred = TransactionCurrency::first(); $preferred = TransactionCurrency::first();
} }

View File

@ -430,8 +430,8 @@ Route::group(
Route::get('tour', ['uses' => 'JsonController@tour', 'as' => 'tour']); Route::get('tour', ['uses' => 'JsonController@tour', 'as' => 'tour']);
Route::get('box/in', ['uses' => 'JsonController@boxIn', 'as' => 'box.in']); Route::get('box/in', ['uses' => 'JsonController@boxIn', 'as' => 'box.in']);
Route::get('box/out', ['uses' => 'JsonController@boxOut', 'as' => 'box.out']); Route::get('box/out', ['uses' => 'JsonController@boxOut', 'as' => 'box.out']);
Route::get('box/bills-unpaid', ['uses' => 'JsonController@boxBillsUnpaid', 'as' => 'box.paid']); Route::get('box/bills-unpaid', ['uses' => 'JsonController@boxBillsUnpaid', 'as' => 'box.unpaid']);
Route::get('box/bills-paid', ['uses' => 'JsonController@boxBillsPaid', 'as' => 'box.unpaid']); Route::get('box/bills-paid', ['uses' => 'JsonController@boxBillsPaid', 'as' => 'box.paid']);
Route::get('transaction-journals/all', ['uses' => 'JsonController@allTransactionJournals', 'as' => 'all-transaction-journals']); Route::get('transaction-journals/all', ['uses' => 'JsonController@allTransactionJournals', 'as' => 'all-transaction-journals']);
Route::get('transaction-journals/{what}', ['uses' => 'JsonController@transactionJournals', 'as' => 'transaction-journals']); Route::get('transaction-journals/{what}', ['uses' => 'JsonController@transactionJournals', 'as' => 'transaction-journals']);
Route::get('transaction-types', ['uses' => 'JsonController@transactionTypes', 'as' => 'transaction-types']); Route::get('transaction-types', ['uses' => 'JsonController@transactionTypes', 'as' => 'transaction-types']);

View File

@ -54,6 +54,8 @@ class JavascriptControllerTest extends TestCase
*/ */
public function testVariables(string $range) public function testVariables(string $range)
{ {
$this->be($this->user()); $this->be($this->user());
$this->changeDateRange($this->user(), $range); $this->changeDateRange($this->user(), $range);
$response = $this->get(route('javascript.variables')); $response = $this->get(route('javascript.variables'));

View File

@ -14,12 +14,14 @@ namespace Tests\Feature\Controllers;
use Amount; use Amount;
use FireflyIII\Helpers\Collector\JournalCollectorInterface; use FireflyIII\Helpers\Collector\JournalCollectorInterface;
use FireflyIII\Models\AccountType; use FireflyIII\Models\AccountType;
use FireflyIII\Models\Budget;
use FireflyIII\Models\Category; use FireflyIII\Models\Category;
use FireflyIII\Models\Tag; use FireflyIII\Models\Tag;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Account\AccountTaskerInterface; use FireflyIII\Repositories\Account\AccountTaskerInterface;
use FireflyIII\Repositories\Bill\BillRepositoryInterface; use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface; use FireflyIII\Repositories\Category\CategoryRepositoryInterface;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\Repositories\Tag\TagRepositoryInterface; use FireflyIII\Repositories\Tag\TagRepositoryInterface;
@ -33,9 +35,9 @@ use Tests\TestCase;
*/ */
class JsonControllerTest extends TestCase class JsonControllerTest extends TestCase
{ {
/** /**
* @covers \FireflyIII\Http\Controllers\JsonController::action * @covers \FireflyIII\Http\Controllers\JsonController::action
* @covers \FireflyIII\Http\Controllers\JsonController::__construct
*/ */
public function testAction() public function testAction()
{ {
@ -48,6 +50,36 @@ class JsonControllerTest extends TestCase
$response->assertStatus(200); $response->assertStatus(200);
} }
/**
* @covers \FireflyIII\Http\Controllers\JsonController::allAccounts
*/
public function testAllAccounts()
{
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$accountRepos->shouldReceive('getAccountsByType')
->withArgs([[AccountType::REVENUE, AccountType::EXPENSE, AccountType::BENEFICIARY, AccountType::DEFAULT, AccountType::ASSET]])
->andReturn(new Collection);
$this->be($this->user());
$response = $this->get(route('json.all-accounts'));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\JsonController::allTransactionJournals()
*/
public function testAllTransactionJournals()
{
$collector = $this->mock(JournalCollectorInterface::class);
$collector->shouldReceive('setLimit')->withArgs([100])->andReturnSelf();
$collector->shouldReceive('setPage')->withArgs([1])->andReturnSelf();
$collector->shouldReceive('getJournals')->andReturn(new Collection);
$this->be($this->user());
$response = $this->get(route('json.all-transaction-journals'));
$response->assertStatus(200);
}
/** /**
* @covers \FireflyIII\Http\Controllers\JsonController::boxBillsPaid * @covers \FireflyIII\Http\Controllers\JsonController::boxBillsPaid
*/ */
@ -57,12 +89,12 @@ class JsonControllerTest extends TestCase
$billRepos = $this->mock(BillRepositoryInterface::class); $billRepos = $this->mock(BillRepositoryInterface::class);
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$billRepos->shouldReceive('getBillsUnpaidInRange')->andReturn('100'); $billRepos->shouldReceive('getBillsPaidInRange')->andReturn('-100');
$this->be($this->user()); $this->be($this->user());
$response = $this->get(route('json.box.paid')); $response = $this->get(route('json.box.paid'));
$response->assertStatus(200); $response->assertStatus(200);
$response->assertExactJson(['amount' => Amount::format('100', false), 'amount_raw' => '100', 'box' => 'bills-unpaid']); $response->assertExactJson(['amount' => Amount::format('100', false), 'amount_raw' => '100', 'box' => 'bills-paid']);
} }
/** /**
@ -74,13 +106,13 @@ class JsonControllerTest extends TestCase
$billRepos = $this->mock(BillRepositoryInterface::class); $billRepos = $this->mock(BillRepositoryInterface::class);
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$billRepos->shouldReceive('getBillsPaidInRange')->andReturn('-100'); $billRepos->shouldReceive('getBillsUnpaidInRange')->andReturn('100');
$this->be($this->user()); $this->be($this->user());
$response = $this->get(route('json.box.unpaid')); $response = $this->get(route('json.box.unpaid'));
$response->assertStatus(200); $response->assertStatus(200);
$response->assertExactJson(['amount' => Amount::format('100', false), 'amount_raw' => '100', 'box' => 'bills-paid']); $response->assertExactJson(['amount' => Amount::format('100', false), 'amount_raw' => '100', 'box' => 'bills-unpaid']);
} }
/** /**
@ -127,6 +159,23 @@ class JsonControllerTest extends TestCase
$response->assertExactJson(['amount' => Amount::format('100', false), 'amount_raw' => '100', 'box' => 'out']); $response->assertExactJson(['amount' => Amount::format('100', false), 'amount_raw' => '100', 'box' => 'out']);
} }
/**
* @covers \FireflyIII\Http\Controllers\JsonController::budgets
*/
public function testBudgets()
{
// mock stuff
$budget = factory(Budget::class)->make();
$categoryRepos = $this->mock(BudgetRepositoryInterface::class);
$journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$categoryRepos->shouldReceive('getBudgets')->andReturn(new Collection([$budget]));
$this->be($this->user());
$response = $this->get(route('json.budgets'));
$response->assertStatus(200);
$response->assertExactJson([$budget->name]);
}
/** /**
* @covers \FireflyIII\Http\Controllers\JsonController::categories * @covers \FireflyIII\Http\Controllers\JsonController::categories
*/ */
@ -231,6 +280,22 @@ class JsonControllerTest extends TestCase
$response->assertStatus(200); $response->assertStatus(200);
} }
/**
* @covers \FireflyIII\Http\Controllers\JsonController::transactionTypes
*/
public function testTransactionTypes()
{
// mock stuff
$journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$journalRepos->shouldReceive('getTransactionTypes')->once()->andReturn(new Collection);
$this->be($this->user());
$response = $this->get(route('json.transaction-types', ['deposit']));
$response->assertStatus(200);
$response->assertExactJson([]);
}
/** /**
* @covers \FireflyIII\Http\Controllers\JsonController::transactionJournals * @covers \FireflyIII\Http\Controllers\JsonController::transactionJournals
*/ */

View File

@ -38,6 +38,7 @@ class PreferencesControllerTest extends TestCase
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$google->shouldReceive('generateSecretKey')->andReturn('secret'); $google->shouldReceive('generateSecretKey')->andReturn('secret');
$google->shouldReceive('getQRCodeInline')->andReturn('long-data-url'); $google->shouldReceive('getQRCodeInline')->andReturn('long-data-url');
$this->be($this->user()); $this->be($this->user());
$response = $this->get(route('preferences.code')); $response = $this->get(route('preferences.code'));
$response->assertStatus(200); $response->assertStatus(200);

View File

@ -19,9 +19,15 @@ use FireflyIII\Generator\Report\Standard\YearReportGenerator as SYRG;
use FireflyIII\Generator\Report\Tag\YearReportGenerator as TYRG; use FireflyIII\Generator\Report\Tag\YearReportGenerator as TYRG;
use FireflyIII\Helpers\Report\ReportHelperInterface; use FireflyIII\Helpers\Report\ReportHelperInterface;
use FireflyIII\Models\AccountType; use FireflyIII\Models\AccountType;
use FireflyIII\Models\Budget;
use FireflyIII\Models\Category;
use FireflyIII\Models\Tag;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\Repositories\Tag\TagRepositoryInterface;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Tests\TestCase; use Tests\TestCase;
@ -130,6 +136,7 @@ class ReportControllerTest extends TestCase
/** /**
* @covers \FireflyIII\Http\Controllers\ReportController::options * @covers \FireflyIII\Http\Controllers\ReportController::options
* @covers \FireflyIII\Http\Controllers\ReportController::noReportOptions
*/ */
public function testOptions() public function testOptions()
{ {
@ -149,35 +156,48 @@ class ReportControllerTest extends TestCase
{ {
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$budgetRepos = $this->mock(BudgetRepositoryInterface::class);
$budget = factory(Budget::class)->make();
$budgetRepos->shouldReceive('getBudgets')->andReturn(new Collection([$budget]));
$this->be($this->user()); $this->be($this->user());
$response = $this->get(route('reports.options', ['budget'])); $response = $this->get(route('reports.options', ['budget']));
$response->assertStatus(200); $response->assertStatus(200);
$response->assertSee($budget->name);
} }
/** /**
* @covers \FireflyIII\Http\Controllers\ReportController::options * @covers \FireflyIII\Http\Controllers\ReportController::options
* @covers \FireflyIII\Http\Controllers\ReportController::categoryReportOptions
*/ */
public function testOptionsCategory() public function testOptionsCategory()
{ {
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$categoryRepos = $this->mock(CategoryRepositoryInterface::class);
$category = factory(Category::class)->make();
$categoryRepos->shouldReceive('getCategories')->andReturn(new Collection([$category]));
$this->be($this->user()); $this->be($this->user());
$response = $this->get(route('reports.options', ['default'])); $response = $this->get(route('reports.options', ['category']));
$response->assertStatus(200); $response->assertStatus(200);
} }
/** /**
* @covers \FireflyIII\Http\Controllers\ReportController::options * @covers \FireflyIII\Http\Controllers\ReportController::options
* @covers \FireflyIII\Http\Controllers\ReportController::tagReportOptions
*/ */
public function testOptionsTag() public function testOptionsTag()
{ {
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$tag = factory(Tag::class)->make();
$tagRepos = $this->mock(TagRepositoryInterface::class);
$tagRepos->shouldReceive('get')->andReturn(new Collection([$tag]));
$this->be($this->user()); $this->be($this->user());
$response = $this->get(route('reports.options', ['default'])); $response = $this->get(route('reports.options', ['tag']));
$response->assertStatus(200); $response->assertStatus(200);
} }
@ -195,7 +215,7 @@ class ReportControllerTest extends TestCase
} }
/** /**
* @covers \FireflyIII\Http\Controllers\ReportController::categoryReport * @covers \FireflyIII\Http\Controllers\ReportController::tagReport
*/ */
public function testTagReport() public function testTagReport()
{ {

View File

@ -128,11 +128,9 @@ class RuleControllerTest extends TestCase
$ruleGroupRepos->shouldReceive('store'); $ruleGroupRepos->shouldReceive('store');
$repository->shouldReceive('getFirstRuleGroup')->andReturn(new RuleGroup); $repository->shouldReceive('getFirstRuleGroup')->andReturn(new RuleGroup);
$ruleGroupRepos->shouldReceive('getRuleGroupsWithRules')->andReturn(new Collection); $ruleGroupRepos->shouldReceive('getRuleGroupsWithRules')->andReturn(new Collection);
$repository->shouldReceive('count')->andReturn(0); $repository->shouldReceive('count')->andReturn(0);
$repository->shouldReceive('store'); $repository->shouldReceive('store');
$this->be($this->user()); $this->be($this->user());
$response = $this->get(route('rules.index')); $response = $this->get(route('rules.index'));
$response->assertStatus(200); $response->assertStatus(200);
@ -145,14 +143,11 @@ class RuleControllerTest extends TestCase
public function testReorderRuleActions() public function testReorderRuleActions()
{ {
// mock stuff // mock stuff
$repository = $this->mock(RuleRepositoryInterface::class);
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$data = [ $data = ['triggers' => [1, 2, 3],];
'triggers' => [1, 2, 3],
];
$repository = $this->mock(RuleRepositoryInterface::class);
$repository->shouldReceive('reorderRuleActions'); $repository->shouldReceive('reorderRuleActions');
$this->be($this->user()); $this->be($this->user());
@ -166,14 +161,11 @@ class RuleControllerTest extends TestCase
public function testReorderRuleTriggers() public function testReorderRuleTriggers()
{ {
// mock stuff // mock stuff
$journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$data = [
'triggers' => [1, 2, 3],
];
$repository = $this->mock(RuleRepositoryInterface::class); $repository = $this->mock(RuleRepositoryInterface::class);
$journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$data = ['triggers' => [1, 2, 3],];
$repository->shouldReceive('reorderRuleTriggers'); $repository->shouldReceive('reorderRuleTriggers');
$this->be($this->user()); $this->be($this->user());
@ -187,10 +179,13 @@ class RuleControllerTest extends TestCase
public function testStore() public function testStore()
{ {
// mock stuff // mock stuff
$ruleGroupRepos = $this->mock(RuleGroupRepositoryInterface::class); $repository = $this->mock(RuleRepositoryInterface::class);
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$ruleGroupRepos = $this->mock(RuleGroupRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$ruleGroupRepos->shouldReceive('find')->andReturn(new RuleGroup)->once(); $ruleGroupRepos->shouldReceive('find')->andReturn(new RuleGroup)->once();
$repository->shouldReceive('store')->andReturn(new Rule);
$this->session(['rules.create.url' => 'http://localhost']); $this->session(['rules.create.url' => 'http://localhost']);
$data = [ $data = [
@ -212,10 +207,6 @@ class RuleControllerTest extends TestCase
1 => 'C', 1 => 'C',
], ],
]; ];
$repository = $this->mock(RuleRepositoryInterface::class);
$repository->shouldReceive('store')->andReturn(new Rule);
$this->be($this->user()); $this->be($this->user());
$response = $this->post(route('rules.store', [1]), $data); $response = $this->post(route('rules.store', [1]), $data);
$response->assertStatus(302); $response->assertStatus(302);
@ -261,10 +252,13 @@ class RuleControllerTest extends TestCase
public function testUpdate() public function testUpdate()
{ {
// mock stuff // mock stuff
$ruleGroupRepos = $this->mock(RuleGroupRepositoryInterface::class); $repository = $this->mock(RuleRepositoryInterface::class);
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$ruleGroupRepos = $this->mock(RuleGroupRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$ruleGroupRepos->shouldReceive('find')->andReturn(new RuleGroup)->once(); $ruleGroupRepos->shouldReceive('find')->andReturn(new RuleGroup)->once();
$repository->shouldReceive('update');
$data = [ $data = [
'rule_group_id' => 1, 'rule_group_id' => 1,
@ -286,10 +280,6 @@ class RuleControllerTest extends TestCase
], ],
]; ];
$this->session(['rules.edit.url' => 'http://localhost']); $this->session(['rules.edit.url' => 'http://localhost']);
$repository = $this->mock(RuleRepositoryInterface::class);
$repository->shouldReceive('update');
$this->be($this->user()); $this->be($this->user());
$response = $this->post(route('rules.update', [1]), $data); $response = $this->post(route('rules.update', [1]), $data);
$response->assertStatus(302); $response->assertStatus(302);

View File

@ -12,6 +12,7 @@ declare(strict_types = 1);
namespace Tests\Feature\Controllers; namespace Tests\Feature\Controllers;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Jobs\ExecuteRuleGroupOnExistingTransactions;
use FireflyIII\Models\RuleGroup; use FireflyIII\Models\RuleGroup;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
@ -30,11 +31,14 @@ class RuleGroupControllerTest extends TestCase
/** /**
* @covers \FireflyIII\Http\Controllers\RuleGroupController::create * @covers \FireflyIII\Http\Controllers\RuleGroupController::create
* @covers \FireflyIII\Http\Controllers\RuleGroupController::__construct
*/ */
public function testCreate() public function testCreate()
{ {
// mock stuff // mock stuff
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$repository = $this->mock(RuleGroupRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$this->be($this->user()); $this->be($this->user());
@ -51,6 +55,7 @@ class RuleGroupControllerTest extends TestCase
// mock stuff // mock stuff
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$repository = $this->mock(RuleGroupRepositoryInterface::class); $repository = $this->mock(RuleGroupRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$repository->shouldReceive('get')->andReturn(new Collection); $repository->shouldReceive('get')->andReturn(new Collection);
@ -67,8 +72,9 @@ class RuleGroupControllerTest extends TestCase
{ {
// mock stuff // mock stuff
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$repository = $this->mock(RuleGroupRepositoryInterface::class); $repository = $this->mock(RuleGroupRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$repository->shouldReceive('destroy'); $repository->shouldReceive('destroy');
$this->session(['rule-groups.delete.url' => 'http://localhost']); $this->session(['rule-groups.delete.url' => 'http://localhost']);
@ -87,6 +93,7 @@ class RuleGroupControllerTest extends TestCase
// mock stuff // mock stuff
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$repository = $this->mock(RuleGroupRepositoryInterface::class); $repository = $this->mock(RuleGroupRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$repository->shouldReceive('moveDown'); $repository->shouldReceive('moveDown');
@ -103,8 +110,11 @@ class RuleGroupControllerTest extends TestCase
{ {
// mock stuff // mock stuff
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$repository = $this->mock(RuleGroupRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$this->be($this->user()); $this->be($this->user());
$response = $this->get(route('rule-groups.edit', [1])); $response = $this->get(route('rule-groups.edit', [1]));
$response->assertStatus(200); $response->assertStatus(200);
@ -117,11 +127,14 @@ class RuleGroupControllerTest extends TestCase
public function testExecute() public function testExecute()
{ {
// mock stuff // mock stuff
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$repository = $this->mock(RuleGroupRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$journalRepos->shouldReceive('first')->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->andReturn(new TransactionJournal);
$accountRepos->shouldReceive('getAccountsById')->andReturn(new Collection); $accountRepos->shouldReceive('getAccountsById')->andReturn(new Collection);
$this->expectsJobs(ExecuteRuleGroupOnExistingTransactions::class);
$this->session(['first' => new Carbon('2010-01-01')]); $this->session(['first' => new Carbon('2010-01-01')]);
$data = [ $data = [
'accounts' => [1], 'accounts' => [1],
@ -142,8 +155,9 @@ class RuleGroupControllerTest extends TestCase
public function testSelectTransactions() public function testSelectTransactions()
{ {
// mock stuff // mock stuff
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$repository = $this->mock(RuleGroupRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$accountRepos->shouldReceive('getAccountsByType')->andReturn(new Collection); $accountRepos->shouldReceive('getAccountsByType')->andReturn(new Collection);
@ -161,16 +175,18 @@ class RuleGroupControllerTest extends TestCase
// mock stuff // mock stuff
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$repository = $this->mock(RuleGroupRepositoryInterface::class); $repository = $this->mock(RuleGroupRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$this->session(['rule-groups.create.url' => 'http://localhost']); $this->session(['rule-groups.create.url' => 'http://localhost']);
$repository->shouldReceive('store')->andReturn(new RuleGroup);
$repository->shouldReceive('find')->andReturn(new RuleGroup);
$data = [ $data = [
'title' => 'A', 'title' => 'A',
'description' => '', 'description' => '',
]; ];
$repository->shouldReceive('store')->andReturn(new RuleGroup);
$repository->shouldReceive('find')->andReturn(new RuleGroup);
$this->be($this->user()); $this->be($this->user());
$response = $this->post(route('rule-groups.store', [1]), $data); $response = $this->post(route('rule-groups.store', [1]), $data);
@ -186,6 +202,7 @@ class RuleGroupControllerTest extends TestCase
// mock stuff // mock stuff
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$repository = $this->mock(RuleGroupRepositoryInterface::class); $repository = $this->mock(RuleGroupRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$repository->shouldReceive('moveUp'); $repository->shouldReceive('moveUp');
@ -203,6 +220,7 @@ class RuleGroupControllerTest extends TestCase
// mock stuff // mock stuff
$journalRepos = $this->mock(JournalRepositoryInterface::class); $journalRepos = $this->mock(JournalRepositoryInterface::class);
$repository = $this->mock(RuleGroupRepositoryInterface::class); $repository = $this->mock(RuleGroupRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
$data = [ $data = [