From 6b40a933e9624bd350b7e01dae01b5c644950970 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 4 Apr 2015 22:53:49 +0200 Subject: [PATCH] And.. completed the account controller. --- app/Http/Controllers/AccountController.php | 2 +- tests/controllers/AccountControllerTest.php | 118 +++++++++++++++++++- 2 files changed, 116 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index bd84774cd0..afacfa1b23 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -192,7 +192,7 @@ class AccountController extends Controller ]; $account = $repository->store($accountData); - Session::flash('success', 'New account "' . $account->name . '" stored!'); + Session::flash('success', 'New account "' . $account->name . '" stored!'); if (intval(Input::get('create_another')) === 1) { return Redirect::route('accounts.create', $request->input('what'))->withInput(); diff --git a/tests/controllers/AccountControllerTest.php b/tests/controllers/AccountControllerTest.php index d2a1e1bfd5..ea42cd83c3 100644 --- a/tests/controllers/AccountControllerTest.php +++ b/tests/controllers/AccountControllerTest.php @@ -48,7 +48,7 @@ class AccountControllerTest extends TestCase public function createAccount() { if (is_null($this->account)) { - $this->account = FactoryMuffin::create('FireflyIII\Models\Account'); + $this->account = FactoryMuffin::create('FireflyIII\Models\Account'); Log::debug('Created a new account.'); //$this->account->accountType->type = 'Asset account'; //$this->account->accountType->save(); @@ -176,12 +176,124 @@ class AccountControllerTest extends TestCase public function testStore() { - $this->markTestIncomplete(); + // an account: + $this->be($this->account->user); + + $data = [ + 'name' => 'New test account ' . rand(1, 1000), + 'what' => 'asset', + 'virtualBalance' => 0, + 'accountRole' => 'defaultAsset', + 'openingBalance' => 20, + 'openingBalanceDate' => date('Y-m-d'), + 'openingBalanceCurrency' => 1, + '_token' => 'replaceme' + ]; + + // fake validation routine: + $request = $this->mock('FireflyIII\Http\Requests\AccountFormRequest'); + $request->shouldReceive('input')->andReturn(''); + + // fake store routine: + $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); + $repository->shouldReceive('store')->andReturn($this->account); + + $this->call('POST', '/accounts/store', $data); + $this->assertResponseStatus(302); + $this->assertSessionHas('success'); + + } + + public function testStoreAndRedirect() + { + // an account: + $this->be($this->account->user); + + $data = [ + 'name' => 'New test account ' . rand(1, 1000), + 'what' => 'asset', + 'virtualBalance' => 0, + 'accountRole' => 'defaultAsset', + 'openingBalance' => 20, + 'openingBalanceDate' => date('Y-m-d'), + 'openingBalanceCurrency' => 1, + '_token' => 'replaceme', + 'create_another' => 1, + ]; + + // fake validation routine: + $request = $this->mock('FireflyIII\Http\Requests\AccountFormRequest'); + $request->shouldReceive('input')->andReturn(''); + + // fake store routine: + $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); + $repository->shouldReceive('store')->andReturn($this->account); + + $this->call('POST', '/accounts/store', $data); + $this->assertResponseStatus(302); + $this->assertSessionHas('success'); + } public function testUpdate() { - $this->markTestIncomplete(); + + // an account: + $this->be($this->account->user); + + $data = [ + 'name' => 'Edited test account ' . rand(1, 1000), + 'active' => 1, + 'accountRole' => 'defaultAsset', + 'virtualBalance' => 0, + 'openingBalance' => 25, + 'openingBalanceDate' => date('Y-m-d'), + 'openingBalanceCurrency' => 1, + '_token' => 'replaceme' + ]; + + // fake validation routine: + $request = $this->mock('FireflyIII\Http\Requests\AccountFormRequest'); + $request->shouldReceive('input')->andReturn(''); + + // fake update routine: + $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); + $repository->shouldReceive('update')->andReturn($this->account); + + $this->call('POST', '/accounts/update/' . $this->account->id, $data); + $this->assertResponseStatus(302); + $this->assertSessionHas('success'); + } + + public function testUpdateAndRedirect() + { + + // an account: + $this->be($this->account->user); + + $data = [ + 'name' => 'Edited test account ' . rand(1, 1000), + 'active' => 1, + 'accountRole' => 'defaultAsset', + 'virtualBalance' => 0, + 'openingBalance' => 25, + 'openingBalanceDate' => date('Y-m-d'), + 'openingBalanceCurrency' => 1, + '_token' => 'replaceme', + 'return_to_edit' => 1, + ]; + + // fake validation routine: + $request = $this->mock('FireflyIII\Http\Requests\AccountFormRequest'); + $request->shouldReceive('input')->andReturn(''); + + // fake update routine: + $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); + $repository->shouldReceive('update')->andReturn($this->account); + + $this->call('POST', '/accounts/update/' . $this->account->id, $data); + $this->assertResponseStatus(302); + $this->assertSessionHas('success'); } }