From 7af55b7268c3504c43426667ccfa1ae3090c6ea4 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 13 Dec 2014 09:36:30 +0100 Subject: [PATCH] Updated some tests, fixed some bugs. --- .gitignore | 1 + app/controllers/GoogleChartController.php | 67 ++++++------- app/database/seeds/TestContentSeeder.php | 4 + app/views/accounts/delete.blade.php | 13 +-- composer.json | 2 +- composer.lock | 25 +++-- tests/_bootstrap.php | 18 +++- tests/functional/AccountControllerCest.php | 106 +++++++++++++++++++++ tests/functional/UserControllerCest.php | 23 ++++- 9 files changed, 193 insertions(+), 66 deletions(-) create mode 100644 tests/functional/AccountControllerCest.php diff --git a/.gitignore b/.gitignore index 7a425f757c..a76c7d4966 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ tests/_output/* testing.sqlite c3.php _ide_helper_models.php +clean.sqlite diff --git a/app/controllers/GoogleChartController.php b/app/controllers/GoogleChartController.php index 0eb2b58396..29b6dd02cb 100644 --- a/app/controllers/GoogleChartController.php +++ b/app/controllers/GoogleChartController.php @@ -1,5 +1,6 @@ _chart = $chart; + + } + /** * @param Account $account * @param string $view @@ -15,55 +28,35 @@ class GoogleChartController extends BaseController */ public function accountBalanceChart(Account $account, $view = 'session') { - /** @var \Grumpydictator\Gchart\GChart $chart */ - $chart = App::make('gchart'); + $this->_chart->addColumn('Day of month', 'date'); + $this->_chart->addColumn('Balance for ' . $account->name, 'number'); - $chart->addColumn('Day of month', 'date'); - $chart->addColumn('Balance for ' . $account->name, 'number'); + $start = Session::get('start'); + $end = Session::get('end'); + $count = $account->transactions()->count(); - /* - * Loop the date, then loop the accounts, then add balance. - */ - switch ($view) { - default: - case 'session': - $start = Session::get('start'); - $end = Session::get('end'); - break; - case 'all': - $first = $account->transactionjournals()->orderBy('date', 'DESC')->first(); - $last = $account->transactionjournals()->orderBy('date', 'ASC')->first(); - if (is_null($first)) { - $start = Session::get('start'); - } else { - $start = clone $first->date; - } - if (is_null($last)) { - $end = Session::get('end'); - } else { - $end = clone $last->date; - } - break; + if ($view == 'all' && $count > 0) { + $first = $account->transactions()->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')->orderBy( + 'date', 'ASC' + )->first(['transaction_journals.date']); + $last = $account->transactions()->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')->orderBy( + 'date', 'DESC' + )->first(['transaction_journals.date']); + $start = new Carbon($first->date); + $end = new Carbon($last->date); } $current = clone $start; while ($end >= $current) { - $row = [clone $current]; - if ($current > Carbon::now()) { - $row[] = null; - } else { - $row[] = Steam::balance($account, $current); - } - - $chart->addRowArray($row); + $this->_chart->addRow(clone $current, $current > Carbon::now() ? null : Steam::balance($account, $current)); $current->addDay(); } - $chart->generate(); + $this->_chart->generate(); - return Response::json($chart->getData()); + return Response::json($this->_chart->getData()); } /** diff --git a/app/database/seeds/TestContentSeeder.php b/app/database/seeds/TestContentSeeder.php index 202b8ebd11..dfaf035df3 100644 --- a/app/database/seeds/TestContentSeeder.php +++ b/app/database/seeds/TestContentSeeder.php @@ -2,6 +2,9 @@ use Carbon\Carbon; +/** + * Class TestContentSeeder + */ class TestContentSeeder extends Seeder { @@ -27,6 +30,7 @@ class TestContentSeeder extends Seeder // create two asset accounts. $checking = Account::create(['user_id' => $user->id, 'account_type_id' => $assetType->id, 'name' => 'Checking account', 'active' => 1]); $savings = Account::create(['user_id' => $user->id, 'account_type_id' => $assetType->id, 'name' => 'Savings account', 'active' => 1]); + $deleteMe = Account::create(['user_id' => $user->id, 'account_type_id' => $assetType->id, 'name' => 'Delete me', 'active' => 1]); // create two budgets: $groceriesBudget = Budget::create(['user_id' => $user->id, 'name' => 'Groceries']); diff --git a/app/views/accounts/delete.blade.php b/app/views/accounts/delete.blade.php index 5140108559..0f60d5298d 100644 --- a/app/views/accounts/delete.blade.php +++ b/app/views/accounts/delete.blade.php @@ -1,7 +1,7 @@ @extends('layouts.default') @section('content') {{ Breadcrumbs::renderIfExists(Route::getCurrentRoute()->getName(), $account) }} -{{Form::open(['class' => 'form-horizontal','url' => route('accounts.destroy',$account->id)])}} +{{Form::open(['class' => 'form-horizontal','id' => 'destroy','url' => route('accounts.destroy',$account->id)])}}
@@ -29,16 +29,5 @@
-
-
-
-
- -
-
-
-
- - {{Form::close()}} @stop \ No newline at end of file diff --git a/composer.json b/composer.json index acd8fe328a..7b3fad61ff 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "require": { "laravel/framework": "4.2.*", "davejamesmiller/laravel-breadcrumbs": "2.*", - "grumpydictator/gchart": "dev-master", + "grumpydictator/gchart": "1.*", "michelf/php-markdown": "1.*", "watson/validating": "0.10.*" }, diff --git a/composer.lock b/composer.lock index b05ef34b6b..0b40a3d726 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "248937553255d85014e6ec3b32115848", + "hash": "4149e5d1a8b58787b3e9f68fc8cf40b9", "packages": [ { "name": "classpreloader/classpreloader", @@ -195,7 +195,7 @@ }, { "name": "grumpydictator/gchart", - "version": "dev-master", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/JC5/gchart.git", @@ -324,16 +324,16 @@ }, { "name": "laravel/framework", - "version": "v4.2.11", + "version": "v4.2.12", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "e29253c7f29e3b1ca716de7fe309b272e3ddf47d" + "reference": "70a60f2ff9b96b3fcd88a68ef5382557733fe671" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/e29253c7f29e3b1ca716de7fe309b272e3ddf47d", - "reference": "e29253c7f29e3b1ca716de7fe309b272e3ddf47d", + "url": "https://api.github.com/repos/laravel/framework/zipball/70a60f2ff9b96b3fcd88a68ef5382557733fe671", + "reference": "70a60f2ff9b96b3fcd88a68ef5382557733fe671", "shasum": "" }, "require": { @@ -435,7 +435,7 @@ "framework", "laravel" ], - "time": "2014-10-04 18:48:27" + "time": "2014-12-11 17:14:36" }, { "name": "michelf/php-markdown", @@ -2828,16 +2828,16 @@ }, { "name": "guzzlehttp/ringphp", - "version": "1.0.4", + "version": "1.0.5", "source": { "type": "git", "url": "https://github.com/guzzle/RingPHP.git", - "reference": "9187999f80720b9494692d2167d75144acb2ad05" + "reference": "a903f51b692427318bc813217c0e6505287e79a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/9187999f80720b9494692d2167d75144acb2ad05", - "reference": "9187999f80720b9494692d2167d75144acb2ad05", + "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/a903f51b692427318bc813217c0e6505287e79a4", + "reference": "a903f51b692427318bc813217c0e6505287e79a4", "shasum": "" }, "require": { @@ -2874,7 +2874,7 @@ "homepage": "https://github.com/mtdowling" } ], - "time": "2014-12-02 05:01:22" + "time": "2014-12-11 05:50:32" }, { "name": "guzzlehttp/streams", @@ -4162,7 +4162,6 @@ "aliases": [], "minimum-stability": "stable", "stability-flags": { - "grumpydictator/gchart": 20, "barryvdh/laravel-debugbar": 0, "barryvdh/laravel-ide-helper": 0, "satooshi/php-coveralls": 20, diff --git a/tests/_bootstrap.php b/tests/_bootstrap.php index 14f1eda6e0..114e9e4b81 100644 --- a/tests/_bootstrap.php +++ b/tests/_bootstrap.php @@ -1,8 +1,24 @@ amLoggedAs(['email' => 'thegrumpydictator@gmail.com', 'password' => 'james']); + + Session::put('start', new Carbon); + Session::put('end', new Carbon); + + + } + + /** + * @param FunctionalTester $I + */ + public function create(FunctionalTester $I) + { + // @codingStandardsIgnoreStart + $I->wantTo('create a new asset account'); + $I->amOnPage('/accounts/create/asset'); + $I->see('Create a new asset account'); + } + + /** + * @param FunctionalTester $I + */ + public function delete(FunctionalTester $I) + { + $I->wantTo('delete an asset account'); + $I->amOnPage('/accounts/delete/3'); + $I->see('Delete account "Delete me"'); + } + + /** + * @param FunctionalTester $I + */ + public function destroy(FunctionalTester $I) + { + $I->wantTo('destroy an asset account'); + } + + /** + * @param FunctionalTester $I + */ + public function edit(FunctionalTester $I) + { + $I->wantTo('delete an asset account'); + $I->amOnPage('/accounts/edit/3'); + $I->see('Edit asset account "Delete me"'); + } + + /** + * @param FunctionalTester $I + */ + public function index(FunctionalTester $I) + { + $I->wantTo('see a list of accounts'); + $I->amOnPage('/accounts/asset'); + $I->see('Checking account'); + $I->see('Delete me'); + } + + /** + * @param FunctionalTester $I + */ + public function show(FunctionalTester $I) + { + $I->wantTo('see one account'); + #$I->amOnPage('/accounts/show/3'); + #$I->see('Details for'); + #$I->see('Delete me'); + } + + /** + * @param FunctionalTester $I + */ + public function store(FunctionalTester $I) + { + $I->wantTo('store a new asset account'); + } + + /** + * @param FunctionalTester $I + */ + public function update(FunctionalTester $I) + { + $I->wantTo('update an asset account'); + } + +} \ No newline at end of file diff --git a/tests/functional/UserControllerCest.php b/tests/functional/UserControllerCest.php index ce7340c404..06050c1bb6 100644 --- a/tests/functional/UserControllerCest.php +++ b/tests/functional/UserControllerCest.php @@ -1,5 +1,11 @@ wantTo('login'); $I->amOnPage('/login'); $I->see('Sign In'); - $I->submitForm('#login', ['email' => 'functional@example.com','password' => 'functional']); + $I->submitForm('#login', ['email' => 'functional@example.com', 'password' => 'functional']); $I->see('functional@example.com'); } + /** + * @param FunctionalTester $I + */ + public function loginFails(FunctionalTester $I) + { + $I->wantTo('fail the login'); + $I->amOnPage('/login'); + $I->see('Sign In'); + $I->submitForm('#login', ['email' => 'functional@example.com', 'password' => 'wrong']); + $I->see('No good'); + + } + /** * @param FunctionalTester $I */ @@ -57,7 +76,7 @@ class UserControllerCest $I->wantTo('post-register a new account'); $I->amOnPage('/register'); $token = $I->grabValueFrom('input[name=_token]'); - $I->submitForm('#register', ['email' => 'noreply@gmail.com','_token' => $token]); + $I->submitForm('#register', ['email' => 'noreply@gmail.com', '_token' => $token]); $I->see('Password sent!'); $I->seeRecord('users', ['email' => 'noreply@gmail.com']); // @codingStandardsIgnoreEnd