More tests.

This commit is contained in:
James Cole
2016-12-18 21:04:53 +01:00
parent 8deb92c3e5
commit 83b404d01e
5 changed files with 113 additions and 80 deletions

View File

@@ -87,10 +87,10 @@ class RuleController extends Controller
$subTitle = trans('firefly.make_new_rule', ['title' => $ruleGroup->title]); $subTitle = trans('firefly.make_new_rule', ['title' => $ruleGroup->title]);
// put previous url in session if not redirect from store (not "create another"). // put previous url in session if not redirect from store (not "create another").
if (session('rules.rule.create.fromStore') !== true) { if (session('rules.create.fromStore') !== true) {
Session::put('rules.create.url', URL::previous()); Session::put('rules.create.url', URL::previous());
} }
Session::forget('rules.rule.create.fromStore'); Session::forget('rules.create.fromStore');
Session::flash('gaEventCategory', 'rules'); Session::flash('gaEventCategory', 'rules');
Session::flash('gaEventAction', 'create-rule'); Session::flash('gaEventAction', 'create-rule');
@@ -179,10 +179,10 @@ class RuleController extends Controller
$subTitle = trans('firefly.edit_rule', ['title' => $rule->title]); $subTitle = trans('firefly.edit_rule', ['title' => $rule->title]);
// put previous url in session if not redirect from store (not "return_to_edit"). // put previous url in session if not redirect from store (not "return_to_edit").
if (session('rules.rule.edit.fromUpdate') !== true) { if (session('rules.edit.fromUpdate') !== true) {
Session::put('rules.edit.url', URL::previous()); Session::put('rules.edit.url', URL::previous());
} }
Session::forget('rules.rule.edit.fromUpdate'); Session::forget('rules.edit.fromUpdate');
Session::flash('gaEventCategory', 'rules'); Session::flash('gaEventCategory', 'rules');
Session::flash('gaEventAction', 'edit-rule'); Session::flash('gaEventAction', 'edit-rule');
@@ -257,9 +257,9 @@ class RuleController extends Controller
if (intval(Input::get('create_another')) === 1) { if (intval(Input::get('create_another')) === 1) {
// set value so create routine will not overwrite URL: // set value so create routine will not overwrite URL:
Session::put('rules.rule.create.fromStore', true); Session::put('rules.create.fromStore', true);
return redirect(route('rules.rule.create', [$ruleGroup]))->withInput(); return redirect(route('rules.create', [$ruleGroup]))->withInput();
} }
// redirect to previous URL. // redirect to previous URL.
@@ -344,9 +344,9 @@ class RuleController extends Controller
if (intval(Input::get('return_to_edit')) === 1) { if (intval(Input::get('return_to_edit')) === 1) {
// set value so edit routine will not overwrite URL: // set value so edit routine will not overwrite URL:
Session::put('rules.rule.edit.fromUpdate', true); Session::put('rules.edit.fromUpdate', true);
return redirect(route('rules.rule.edit', [$rule->id]))->withInput(['return_to_edit' => 1]); return redirect(route('rules.edit', [$rule->id]))->withInput(['return_to_edit' => 1]);
} }
// redirect to previous URL. // redirect to previous URL.

View File

@@ -62,10 +62,10 @@ class RuleGroupController extends Controller
$subTitle = trans('firefly.make_new_rule_group'); $subTitle = trans('firefly.make_new_rule_group');
// put previous url in session if not redirect from store (not "create another"). // put previous url in session if not redirect from store (not "create another").
if (session('rules.rule-group.create.fromStore') !== true) { if (session('rule-groups.create.fromStore') !== true) {
Session::put('rules.rule-group.create.url', URL::previous()); Session::put('rule-groups.create.url', URL::previous());
} }
Session::forget('rules.rule-group.create.fromStore'); Session::forget('rule-groups.create.fromStore');
Session::flash('gaEventCategory', 'rules'); Session::flash('gaEventCategory', 'rules');
Session::flash('gaEventAction', 'create-rule-group'); Session::flash('gaEventAction', 'create-rule-group');
@@ -86,7 +86,7 @@ class RuleGroupController extends Controller
unset($ruleGroupList[$ruleGroup->id]); unset($ruleGroupList[$ruleGroup->id]);
// put previous url in session // put previous url in session
Session::put('rules.rule-group.delete.url', URL::previous()); Session::put('rule-groups.delete.url', URL::previous());
Session::flash('gaEventCategory', 'rules'); Session::flash('gaEventCategory', 'rules');
Session::flash('gaEventAction', 'delete-rule-group'); Session::flash('gaEventAction', 'delete-rule-group');
@@ -113,7 +113,7 @@ class RuleGroupController extends Controller
Preferences::mark(); Preferences::mark();
return redirect(session('rules.rule-group.delete.url')); return redirect(session('rule-groups.delete.url'));
} }
/** /**
@@ -140,10 +140,10 @@ class RuleGroupController extends Controller
$subTitle = trans('firefly.edit_rule_group', ['title' => $ruleGroup->title]); $subTitle = trans('firefly.edit_rule_group', ['title' => $ruleGroup->title]);
// put previous url in session if not redirect from store (not "return_to_edit"). // put previous url in session if not redirect from store (not "return_to_edit").
if (session('rules.rule-group.edit.fromUpdate') !== true) { if (session('rule-groups.edit.fromUpdate') !== true) {
Session::put('rules.rule-group.edit.url', URL::previous()); Session::put('rule-groups.edit.url', URL::previous());
} }
Session::forget('rules.rule-group.edit.fromUpdate'); Session::forget('rule-groups.edit.fromUpdate');
Session::flash('gaEventCategory', 'rules'); Session::flash('gaEventCategory', 'rules');
Session::flash('gaEventAction', 'edit-rule-group'); Session::flash('gaEventAction', 'edit-rule-group');
@@ -220,13 +220,13 @@ class RuleGroupController extends Controller
if (intval(Input::get('create_another')) === 1) { if (intval(Input::get('create_another')) === 1) {
// set value so create routine will not overwrite URL: // set value so create routine will not overwrite URL:
Session::put('rules.rule-group.create.fromStore', true); Session::put('rule-groups.create.fromStore', true);
return redirect(route('rules.rule-group.create'))->withInput(); return redirect(route('rule-groups.create'))->withInput();
} }
// redirect to previous URL. // redirect to previous URL.
return redirect(session('rules.rule-group.create.url')); return redirect(session('rule-groups.create.url'));
} }
/** /**
@@ -265,13 +265,13 @@ class RuleGroupController extends Controller
if (intval(Input::get('return_to_edit')) === 1) { if (intval(Input::get('return_to_edit')) === 1) {
// set value so edit routine will not overwrite URL: // set value so edit routine will not overwrite URL:
Session::put('rules.rule-group.edit.fromUpdate', true); Session::put('rule-groups.edit.fromUpdate', true);
return redirect(route('rules.rule-group.edit', [$ruleGroup->id]))->withInput(['return_to_edit' => 1]); return redirect(route('rule-groups.edit', [$ruleGroup->id]))->withInput(['return_to_edit' => 1]);
} }
// redirect to previous URL. // redirect to previous URL.
return redirect(session('rules.rule-group.edit.url')); return redirect(session('rule-groups.edit.url'));
} }
} }

View File

@@ -604,29 +604,36 @@ Breadcrumbs::register(
} }
); );
Breadcrumbs::register( Breadcrumbs::register(
'rules.rule-group.create', function (BreadCrumbGenerator $breadcrumbs) { 'rule-groups.create', function (BreadCrumbGenerator $breadcrumbs) {
$breadcrumbs->parent('rules.index'); $breadcrumbs->parent('rules.index');
$breadcrumbs->push(trans('firefly.make_new_rule_group'), route('rules.rule-group.create')); $breadcrumbs->push(trans('firefly.make_new_rule_group'), route('rule-groups.create'));
} }
); );
Breadcrumbs::register( Breadcrumbs::register(
'rules.rule-group.edit', function (BreadCrumbGenerator $breadcrumbs, RuleGroup $ruleGroup) { 'rule-groups.edit', function (BreadCrumbGenerator $breadcrumbs, RuleGroup $ruleGroup) {
$breadcrumbs->parent('rules.index'); $breadcrumbs->parent('rules.index');
$breadcrumbs->push(trans('firefly.edit_rule_group', ['title' => $ruleGroup->title]), route('rules.rule-group.edit', [$ruleGroup])); $breadcrumbs->push(trans('firefly.edit_rule_group', ['title' => $ruleGroup->title]), route('rule-groups.edit', [$ruleGroup]));
} }
); );
Breadcrumbs::register( Breadcrumbs::register(
'rules.rule-group.delete', function (BreadCrumbGenerator $breadcrumbs, RuleGroup $ruleGroup) { 'rule-groups.delete', function (BreadCrumbGenerator $breadcrumbs, RuleGroup $ruleGroup) {
$breadcrumbs->parent('rules.index'); $breadcrumbs->parent('rules.index');
$breadcrumbs->push(trans('firefly.delete_rule_group', ['title' => $ruleGroup->title]), route('rules.rule-group.delete', [$ruleGroup])); $breadcrumbs->push(trans('firefly.delete_rule_group', ['title' => $ruleGroup->title]), route('rule-groups.delete', [$ruleGroup]));
} }
); );
Breadcrumbs::register( Breadcrumbs::register(
'rules.rule-group.select_transactions', function (BreadCrumbGenerator $breadcrumbs, RuleGroup $ruleGroup) { 'rule-groups.select-transactions', function (BreadCrumbGenerator $breadcrumbs, RuleGroup $ruleGroup) {
$breadcrumbs->parent('rules.index');
$breadcrumbs->push(trans('firefly.rule_group_select_transactions', ['title' => $ruleGroup->title]), route('rule-groups.select-transactions', [$ruleGroup]));
}
);
Breadcrumbs::register(
'rule-groups.select_transactions', function (BreadCrumbGenerator $breadcrumbs, RuleGroup $ruleGroup) {
$breadcrumbs->parent('rules.index'); $breadcrumbs->parent('rules.index');
$breadcrumbs->push( $breadcrumbs->push(
trans('firefly.execute_group_on_existing_transactions', ['title' => $ruleGroup->title]), route('rules.rule-group.select_transactions', [$ruleGroup]) trans('firefly.execute_group_on_existing_transactions', ['title' => $ruleGroup->title]), route('rule-groups.select_transactions', [$ruleGroup])
); );
} }
); );

View File

@@ -194,6 +194,7 @@ return [
'warning_no_matching_transactions' => 'No matching transactions found. Please note that for performance reasons, only the last :num_transactions transactions have been checked.', 'warning_no_matching_transactions' => 'No matching transactions found. Please note that for performance reasons, only the last :num_transactions transactions have been checked.',
'warning_no_valid_triggers' => 'No valid triggers provided.', 'warning_no_valid_triggers' => 'No valid triggers provided.',
'execute_on_existing_transactions' => 'Execute for existing transactions', 'execute_on_existing_transactions' => 'Execute for existing transactions',
'rule_group_select_transactions' => 'Execute rule group ":title" on existing transactions',
'execute_on_existing_transactions_intro' => 'When a rule or group has been changed or added, you can execute it for existing transactions', 'execute_on_existing_transactions_intro' => 'When a rule or group has been changed or added, you can execute it for existing transactions',
'execute_on_existing_transactions_short' => 'Existing transactions', 'execute_on_existing_transactions_short' => 'Existing transactions',
'executed_group_on_existing_transactions' => 'Executed group ":title" for existing transactions', 'executed_group_on_existing_transactions' => 'Executed group ":title" for existing transactions',

View File

@@ -8,6 +8,9 @@
* *
* See the LICENSE file for details. * See the LICENSE file for details.
*/ */
use Carbon\Carbon;
use FireflyIII\Models\RuleGroup;
use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface;
/** /**
@@ -28,121 +31,143 @@ class RuleGroupControllerTest extends TestCase
/** /**
* @covers \FireflyIII\Http\Controllers\RuleGroupController::create * @covers \FireflyIII\Http\Controllers\RuleGroupController::create
* Implement testCreate().
*/ */
public function testCreate() public function testCreate()
{ {
// Remove the following lines when you implement this test. $this->be($this->user());
$this->markTestIncomplete( $this->call('get', route('rule-groups.create'));
'This test has not been implemented yet.' $this->assertResponseStatus(200);
); $this->see('<ol class="breadcrumb">');
} }
/** /**
* @covers \FireflyIII\Http\Controllers\RuleGroupController::delete * @covers \FireflyIII\Http\Controllers\RuleGroupController::delete
* Implement testDelete().
*/ */
public function testDelete() public function testDelete()
{ {
// Remove the following lines when you implement this test. $this->be($this->user());
$this->markTestIncomplete( $this->call('get', route('rule-groups.delete', [1]));
'This test has not been implemented yet.' $this->assertResponseStatus(200);
); $this->see('<ol class="breadcrumb">');
} }
/** /**
* @covers \FireflyIII\Http\Controllers\RuleGroupController::destroy * @covers \FireflyIII\Http\Controllers\RuleGroupController::destroy
* Implement testDestroy().
*/ */
public function testDestroy() public function testDestroy()
{ {
// Remove the following lines when you implement this test. $repository = $this->mock(RuleGroupRepositoryInterface::class);
$this->markTestIncomplete( $repository->shouldReceive('destroy');
'This test has not been implemented yet.'
); $this->session(['rule-groups.delete.url' => 'http://localhost']);
$this->be($this->user());
$this->call('post', route('rule-groups.destroy', [1]));
$this->assertResponseStatus(302);
$this->assertSessionHas('success');
$this->assertRedirectedToRoute('index');
} }
/** /**
* @covers \FireflyIII\Http\Controllers\RuleGroupController::down * @covers \FireflyIII\Http\Controllers\RuleGroupController::down
* Implement testDown().
*/ */
public function testDown() public function testDown()
{ {
// Remove the following lines when you implement this test. $this->be($this->user());
$this->markTestIncomplete( $this->call('get', route('rule-groups.down', [1]));
'This test has not been implemented yet.' $this->assertResponseStatus(302);
); $this->assertRedirectedToRoute('rules.index');
} }
/** /**
* @covers \FireflyIII\Http\Controllers\RuleGroupController::edit * @covers \FireflyIII\Http\Controllers\RuleGroupController::edit
* Implement testEdit().
*/ */
public function testEdit() public function testEdit()
{ {
// Remove the following lines when you implement this test. $this->be($this->user());
$this->markTestIncomplete( $this->call('get', route('rule-groups.edit', [1]));
'This test has not been implemented yet.' $this->assertResponseStatus(200);
); $this->see('<ol class="breadcrumb">');
} }
/** /**
* @covers \FireflyIII\Http\Controllers\RuleGroupController::execute * @covers \FireflyIII\Http\Controllers\RuleGroupController::execute
* Implement testExecute().
*/ */
public function testExecute() public function testExecute()
{ {
// Remove the following lines when you implement this test. $this->session(['first' => new Carbon('2010-01-01')]);
$this->markTestIncomplete( $data = [
'This test has not been implemented yet.' 'accounts' => [1],
); 'start_date' => '2010-01-02',
'end_date' => '2010-01-02',
];
$this->be($this->user());
$this->call('post', route('rule-groups.execute', [1]), $data);
$this->assertResponseStatus(302);
$this->assertSessionHas('success');
$this->assertRedirectedToRoute('rules.index');
} }
/** /**
* @covers \FireflyIII\Http\Controllers\RuleGroupController::selectTransactions * @covers \FireflyIII\Http\Controllers\RuleGroupController::selectTransactions
* Implement testSelectTransactions().
*/ */
public function testSelectTransactions() public function testSelectTransactions()
{ {
// Remove the following lines when you implement this test. $this->be($this->user());
$this->markTestIncomplete( $this->call('get', route('rule-groups.select-transactions', [1]));
'This test has not been implemented yet.' $this->assertResponseStatus(200);
); $this->see('<ol class="breadcrumb">');
} }
/** /**
* @covers \FireflyIII\Http\Controllers\RuleGroupController::store * @covers \FireflyIII\Http\Controllers\RuleGroupController::store
* Implement testStore().
*/ */
public function testStore() public function testStore()
{ {
// Remove the following lines when you implement this test. $this->session(['rule-groups.create.url' => 'http://localhost']);
$this->markTestIncomplete( $data = [
'This test has not been implemented yet.' 'title' => 'A',
); 'description' => '',
];
$repository = $this->mock(RuleGroupRepositoryInterface::class);
$repository->shouldReceive('store')->andReturn(new RuleGroup);
$repository->shouldReceive('find')->andReturn(new RuleGroup);
$this->be($this->user());
$this->call('post', route('rule-groups.store', [1]), $data);
$this->assertResponseStatus(302);
$this->assertSessionHas('success');
} }
/** /**
* @covers \FireflyIII\Http\Controllers\RuleGroupController::up * @covers \FireflyIII\Http\Controllers\RuleGroupController::up
* Implement testUp().
*/ */
public function testUp() public function testUp()
{ {
// Remove the following lines when you implement this test. $this->be($this->user());
$this->markTestIncomplete( $this->call('get', route('rule-groups.up', [1]));
'This test has not been implemented yet.' $this->assertResponseStatus(302);
); $this->assertRedirectedToRoute('rules.index');
} }
/** /**
* @covers \FireflyIII\Http\Controllers\RuleGroupController::update * @covers \FireflyIII\Http\Controllers\RuleGroupController::update
* Implement testUpdate().
*/ */
public function testUpdate() public function testUpdate()
{ {
// Remove the following lines when you implement this test. $data = [
$this->markTestIncomplete( 'title' => 'C',
'This test has not been implemented yet.' 'description' => 'XX',
); ];
$this->session(['rule-groups.edit.url' => 'http://localhost']);
$repository = $this->mock(RuleGroupRepositoryInterface::class);
$repository->shouldReceive('update');
$repository->shouldReceive('find')->andReturn(new RuleGroup);
$this->be($this->user());
$this->call('post', route('rule-groups.update', [1]), $data);
$this->assertResponseStatus(302);
$this->assertSessionHas('success');
} }
} }