diff --git a/app/tests/AccountTest.php b/app/tests/AccountTest.php deleted file mode 100644 index 3917b34b1b..0000000000 --- a/app/tests/AccountTest.php +++ /dev/null @@ -1,388 +0,0 @@ -_repository = $this->mock('Firefly\Storage\Account\AccountRepositoryInterface'); - $this->_accounts = $this->mock('Firefly\Helper\Controllers\AccountInterface'); - $this->_user = m::mock('User', 'Eloquent'); - - } - - /** - * - */ - public function tearDown() - { - - Mockery::close(); - } - - /** - * @covers \Account - * @covers \AccountType - */ - public function testAccountModel() - { - // create account and user: - $account = f::create('Account'); - $user = f::create('User'); - $user->accounts()->save($account); - - // new account? balance should be 0.00 - $this->assertEquals(0.0, $account->balance()); - - // create and link two transactions / piggybanks: - for ($i = 0; $i < 2; $i++) { - $transaction = f::create('Transaction'); - $transaction->account()->associate($account); - $transaction->save(); - - $piggy = f::create('Piggybank'); - $piggy->account()->associate($account); - $piggy->save(); - - } - // test related models - $this->assertCount(2, $account->transactions()->get()); - $this->assertCount(2, $account->piggybanks()->get()); - - // predict should always be null: - $this->assertNull($account->predict(new Carbon)); - - // user should equal test user: - $this->assertEquals($user->id, $account->user()->first()->id); - - $this->assertEquals('testing', \App::environment()); - - // whatever the account type of this account, searching for it using the - // scope method should return one account: - $accountType = $account->accounttype()->first(); - $accounts = $accountType->accounts()->count(); - $this->assertCount($accounts, \Account::AccountTypeIn([$accountType->type])->get()); - - } - - /** - * @covers \AccountController::create - */ - public function testCreate() - { - // test the view: - View::shouldReceive('make')->once()->with('accounts.create')->andReturn(m::self()) - ->shouldReceive('with')->once()->with('title', 'Create account'); - - // call and final test: - $this->action('GET', 'AccountController@create'); - $this->assertResponseOk(); - - } - - /** - * @covers \AccountController::delete - */ - public function testDelete() - { - // some prep work. - /** @var \Account $account */ - $account = f::create('Account'); - - /** @var \AccountType $accountType */ - $accountType = \AccountType::whereType('Default account')->first(); - $account->accountType()->associate($accountType); - $account->save(); - - // for successful binding with the account to delete: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($account->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - // test the view: - View::shouldReceive('make')->once()->with('accounts.delete')->andReturn(m::self()) - ->shouldReceive('with')->once()->with('account', m::any())->andReturn(m::self()) - ->shouldReceive('with')->once()->with('title', 'Delete account "' . $account->name . '"'); - - // call and final test: - $this->action('GET', 'AccountController@delete', $account->id); - $this->assertResponseOk(); - } - - /** - * @covers \AccountController::destroy - */ - public function testDestroy() - { - /** @var \Account $account */ - $account = f::create('Account'); - - /** @var \AccountType $accountType */ - $accountType = \AccountType::whereType('Default account')->first(); - $account->accountType()->associate($accountType); - $account->save(); - - - // for successful binding with the account to destroy: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($account->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - // test if the repository receives an argument: - $this->_repository->shouldReceive('destroy')->once(); - - // post it: - $this->action('POST', 'AccountController@destroy', $account->id); - $this->assertRedirectedToRoute('accounts.index'); - $this->assertSessionHas('success'); - } - - /** - * @covers \AccountController::edit - */ - public function testEdit() - { - /** @var \Account $account */ - $account = f::create('Account'); - - /** @var \AccountType $accountType */ - $accountType = \AccountType::whereType('Default account')->first(); - $account->accountType()->associate($accountType); - $account->save(); - - // for successful binding with the account to edit: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($account->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - // test if the repository works: - $this->_accounts->shouldReceive('openingBalanceTransaction')->once()->with(m::any())->andReturn(null); - - // test if the view works: - View::shouldReceive('make')->once()->with('accounts.edit')->andReturn(m::self()) - ->shouldReceive('with')->once()->with('account', m::any())->andReturn(m::self()) - ->shouldReceive('with')->once()->with('openingBalance', null)->andReturn(m::self()) - ->shouldReceive('with')->once()->with('title', 'Edit account "' . $account->name . '"'); - - $this->action('GET', 'AccountController@edit', $account->id); - $this->assertResponseOk(); - } - - /** - * @covers \AccountController::index - */ - public function testIndex() - { - // two account types: - $personalType = \AccountType::whereType('Default account')->first(); - $benType = \AccountType::whereType('Beneficiary account')->first(); - - // create two accounts: - /** @var \Account $account */ - $personal = f::create('Account'); - $personal->accountType()->associate($personalType); - $personal->save(); - $ben = f::create('Account'); - $ben->accountType()->associate($benType); - $ben->save(); - - /** @var \AccountType $accountType */ - $collection = new Collection(); - $collection->add($personal); - $collection->add($ben); - - $list = [ - 'personal' => [$personal], - 'beneficiaries' => [$ben], - ]; - - // test repository: - $this->_repository->shouldReceive('get')->once()->andReturn($collection); - - // test view: - View::shouldReceive('make')->once()->with('accounts.index')->andReturn(m::self()) - ->shouldReceive('with')->once()->with('accounts', $list)->andReturn(m::self()) - ->shouldReceive('with')->once()->with('title', 'All your accounts'); - - $this->action('GET', 'AccountController@index'); - $this->assertResponseOk(); - } - - /** - * @covers \AccountController::show - */ - public function testShow() - { - /** @var \Account $account */ - $account = f::create('Account'); - - /** @var \AccountType $accountType */ - $accountType = \AccountType::whereType('Default account')->first(); - $account->accountType()->associate($accountType); - $account->save(); - - // for successful binding with the account to show: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($account->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - // test view: - View::shouldReceive('make')->once()->with('accounts.show')->andReturn(m::self()) - ->shouldReceive('with')->once()->with('account', m::any())->andReturn(m::self()) - ->shouldReceive('with')->once()->with('show', [])->andReturn(m::self()) - ->shouldReceive('with')->once()->with('title', 'Details for account "' . $account->name . '"'); - - $this->_accounts->shouldReceive('show')->once()->andReturn([]); - - - $this->action('GET', 'AccountController@show', $account->id); - $this->assertResponseOk(); - } - - /** - * @covers \AccountController::store - */ - public function testStore() - { - /** @var \Account $account */ - $account = f::create('Account'); - - /** @var \AccountType $accountType */ - $accountType = \AccountType::whereType('Default account')->first(); - $account->accountType()->associate($accountType); - $account->save(); - - $this->_repository->shouldReceive('store')->andReturn($account); - $this->action('POST', 'AccountController@store'); - $this->assertRedirectedToRoute('accounts.index'); - $this->assertSessionHas('success'); - } - - /** - * @covers \AccountController::store - */ - public function testStoreFails() - { - /** @var \Account $account */ - $account = f::create('Account'); - - /** @var \AccountType $accountType */ - $accountType = \AccountType::whereType('Default account')->first(); - $account->accountType()->associate($accountType); - $account->save(); - - unset($account->name); - $this->_repository->shouldReceive('store')->andReturn($account); - $this->action('POST', 'AccountController@store'); - $this->assertRedirectedToRoute('accounts.create'); - $this->assertSessionHas('error'); - } - - /** - * @covers \AccountController::store - */ - public function testStoreRecreate() - { - /** @var \Account $account */ - $account = f::create('Account'); - - /** @var \AccountType $accountType */ - $accountType = \AccountType::whereType('Default account')->first(); - $account->accountType()->associate($accountType); - $account->save(); - - $this->_repository->shouldReceive('store')->andReturn($account); - $this->action('POST', 'AccountController@store', ['create' => '1']); - $this->assertRedirectedToRoute('accounts.create'); - $this->assertSessionHas('success'); - } - - /** - * @covers \AccountController::update - */ - public function testUpdate() - { - /** @var \Account $account */ - $account = f::create('Account'); - - /** @var \AccountType $accountType */ - $accountType = \AccountType::whereType('Default account')->first(); - $account->accountType()->associate($accountType); - $account->save(); - - // for successful binding with the account to update: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($account->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - // test - $this->_repository->shouldReceive('update')->andReturn($account); - - $this->action('POST', 'AccountController@update', $account->id); - $this->assertRedirectedToRoute('accounts.index'); - $this->assertSessionHas('success'); - - } - - /** - * @covers \AccountController::update - */ - public function testUpdateFails() - { - /** @var \Account $account */ - $account = f::create('Account'); - - /** @var \AccountType $accountType */ - $accountType = \AccountType::whereType('Default account')->first(); - $account->accountType()->associate($accountType); - $account->save(); - - unset($account->name); - - // for successful binding with the account to show: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($account->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - // test - $this->_repository->shouldReceive('update')->andReturn($account); - - $this->action('POST', 'AccountController@update', $account->id); - $this->assertRedirectedToRoute('accounts.edit', $account->id); - $this->assertSessionHas('error'); - - } -} \ No newline at end of file diff --git a/app/tests/BudgetTest.php b/app/tests/BudgetTest.php deleted file mode 100644 index a9b6348253..0000000000 --- a/app/tests/BudgetTest.php +++ /dev/null @@ -1,460 +0,0 @@ -_repository = $this->mock('Firefly\Storage\Budget\BudgetRepositoryInterface'); - $this->_budgets = $this->mock('Firefly\Helper\Controllers\BudgetInterface'); - $this->_user = m::mock('User', 'Eloquent'); - - } - - public function tearDown() - { - Mockery::close(); - } - - /** - * @covers \Budget - * - */ - public function testBudgetModel() - { - // create budget: - $budget = f::create('Budget'); - - // create some transaction journals: - $t1 = f::create('TransactionJournal'); - $t2 = f::create('TransactionJournal'); - - $budget->transactionjournals()->save($t1); - $budget->transactionjournals()->save($t2); - - $this->assertCount(2, $budget->transactionjournals()->get()); - $this->assertEquals($budget->id, $t1->budgets()->first()->id); - - } - - /** - * @covers \BudgetController::create - */ - public function testCreate() - { - // test config: - $periods = [ - 'weekly' => 'A week', - 'monthly' => 'A month', - 'quarterly' => 'A quarter', - 'half-year' => 'Six months', - 'yearly' => 'A year', - ]; - // test the view: - View::shouldReceive('make')->with('budgets.create')->once()->andReturn(m::self()) - ->shouldReceive('with')->with('periods', $periods)->once()->andReturn(m::self()) - ->shouldReceive('with')->with('title', 'Create a new budget')->once(); - - - $this->action('GET', 'BudgetController@create'); - $this->assertResponseOk(); - - } - - /** - * @covers \BudgetController::delete - */ - public function testDelete() - { - - $budget = f::create('Budget'); - - // test the view: - View::shouldReceive('make')->with('budgets.delete')->once()->andReturn(m::self()) - ->shouldReceive('with')->with('budget', m::any())->once()->andReturn(m::self()) - ->shouldReceive('with')->with('title', 'Delete budget "' . $budget->name . '"')->once(); - - // for successful binding with the budget to delete: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($budget->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->action('GET', 'BudgetController@delete', $budget->id); - $this->assertResponseOk(); - } - - /** - * @covers \BudgetController::destroy - */ - public function testDestroy() - { - $budget = f::create('Budget'); - - // for successful binding with the budget to delete: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($budget->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - // fire the event: - Event::shouldReceive('fire')->once()->with('budgets.destroy', [$budget]); - - // fire the repository: - $this->_repository->shouldReceive('destroy')->once()->andReturn(true); - - // fire and test: - $this->action('POST', 'BudgetController@destroy', $budget->id); - $this->assertRedirectedToRoute('budgets.index.budget'); - $this->assertSessionHas('success'); - } - - /** - * @covers \BudgetController::destroy - */ - public function testDestroyFromDate() - { - $budget = f::create('Budget'); - - // for successful binding with the budget to delete: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($budget->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - // fire the event: - Event::shouldReceive('fire')->once()->with('budgets.destroy', [$budget]); - - // fire the repository: - $this->_repository->shouldReceive('destroy')->once()->andReturn(true); - - // fire and test: - $this->action('POST', 'BudgetController@destroy', [$budget->id, 'from' => 'date']); - $this->assertRedirectedToRoute('budgets.index'); - $this->assertSessionHas('success'); - } - - /** - * @covers \BudgetController::edit - */ - public function testEdit() - { - $budget = f::create('Budget'); - - // for successful binding with the budget to delete: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($budget->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); // - - // test the view: - View::shouldReceive('make')->with('budgets.edit')->once()->andReturn(m::self()) - ->shouldReceive('with')->with('budget', m::any())->once()->andReturn(m::self()) - ->shouldReceive('with')->with('title', 'Edit budget "' . $budget->name . '"')->once(); - - - $this->action('GET', 'BudgetController@edit', $budget->id); - $this->assertResponseOk(); - } - - /** - * @covers \BudgetController::indexByBudget - */ - public function testIndexByBudget() - { - $this->_repository->shouldReceive('get')->once()->andReturn([]); - - // test the view: - View::shouldReceive('make')->with('budgets.indexByBudget')->once()->andReturn(m::self()) - ->shouldReceive('with')->with('budgets', [])->once()->andReturn(m::self()) - ->shouldReceive('with')->with('today', m::any())->once()->andReturn(m::self()) - ->shouldReceive('with')->with('title', 'All your budgets grouped by budget')->once(); - - - $this->action('GET', 'BudgetController@indexByBudget'); - $this->assertResponseOk(); - } - - /** - * @covers \BudgetController::indexByDate - */ - public function testIndexByDate() - { - $collection = new Collection(); - - // test the view: - View::shouldReceive('make')->with('budgets.indexByDate')->once()->andReturn(m::self()) - ->shouldReceive('with')->with('budgets', [])->once()->andReturn(m::self()) - ->shouldReceive('with')->with('title', 'All your budgets grouped by date')->once(); - - - $this->_repository->shouldReceive('get')->once()->andReturn($collection); - $this->_budgets->shouldReceive('organizeByDate')->with($collection)->andReturn([]); - - $this->action('GET', 'BudgetController@indexByDate'); - $this->assertResponseOk(); - } - - /** - * @covers \BudgetController::show - */ - public function testShowDefault() - { - $budget = f::create('Budget'); - - // for successful binding with the budget to show: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($budget->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); // - - // test repository: - $this->_budgets->shouldReceive('organizeRepetitions')->with(m::any(), false)->once()->andReturn([]); - - // test the view: - View::shouldReceive('make')->with('budgets.show')->once()->andReturn(m::self()) - ->shouldReceive('with')->with('budget', m::any())->once()->andReturn(m::self()) - ->shouldReceive('with')->with('repetitions', [])->once()->andReturn(m::self()) - ->shouldReceive('with')->with('view', 4)->once()->andReturn(m::self()) - ->shouldReceive('with')->with('highlight', null)->once()->andReturn(m::self()) - ->shouldReceive('with')->with('useSessionDates', false)->once()->andReturn(m::self()) - ->shouldReceive('with')->with('title', $budget->name)->once(); - - $this->action('GET', 'BudgetController@show', $budget->id); - $this->assertResponseOk(); - } - - /** - * @covers \BudgetController::show - */ - public function testShowOutsideEnvelope() - { - $budget = f::create('Budget'); - - // for successful binding with the budget to show: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->between(0, 2)->andReturn($budget->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->session(['start' => new Carbon, 'end' => new Carbon]); - - // test repository: - $this->_budgets->shouldReceive('outsideRepetitions')->with(m::any())->once()->andReturn([]); - - // test the view: - View::shouldReceive('make')->with('budgets.show')->once()->andReturn(m::self()) - ->shouldReceive('with')->with('budget', m::any())->once()->andReturn(m::self()) - ->shouldReceive('with')->with('repetitions', [])->once()->andReturn(m::self()) - ->shouldReceive('with')->with('view', 2)->once()->andReturn(m::self()) - ->shouldReceive('with')->with('highlight', null)->once()->andReturn(m::self()) - ->shouldReceive('with')->with('useSessionDates', false)->once()->andReturn(m::self()) - ->shouldReceive('with')->with('title', $budget->name . ', transactions outside an envelope')->once(); - - $this->action('GET', 'BudgetController@show', [$budget->id, null, 'noenvelope' => 'true']); - $this->assertResponseOk(); - } - - - /** - * @covers \BudgetController::show - */ - public function testShowWithRepetition() - { - $budget = f::create('Budget'); - $limit = f::create('Limit'); - $repetition = f::create('LimitRepetition'); - $limit->limitrepetitions()->save($repetition); - $budget->limits()->save($limit); - - // for successful binding with the budget to show: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->between(0, 2)->andReturn($budget->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->session(['start' => new Carbon, 'end' => new Carbon]); - - // test repository: - $this->_budgets->shouldReceive('organizeRepetition')->with(m::any())->once()->andReturn([]); - - // test the view: - View::shouldReceive('make')->with('budgets.show')->once()->andReturn(m::self()) - ->shouldReceive('with')->with('budget', m::any())->once()->andReturn(m::self()) - ->shouldReceive('with')->with('repetitions', [])->once()->andReturn(m::self()) - ->shouldReceive('with')->with('view', 1)->once()->andReturn(m::self()) - ->shouldReceive('with')->with('highlight', null)->once()->andReturn(m::self()) - ->shouldReceive('with')->with('useSessionDates', false)->once()->andReturn(m::self()) - ->shouldReceive('with')->with('title', - $budget->name . ', ' . $repetition->periodShow() . ', ' . - mf($limit->amount, false))->once(); - - $this->action('GET', 'BudgetController@show', [$budget->id, $repetition->id]); - $this->assertResponseOk(); - } - - - /** - * @covers \BudgetController::store - */ - public function testStore() - { - $budget = f::create('Budget'); - - // test repository: - $this->_repository->shouldReceive('store')->andReturn($budget); - - // test event: - Event::shouldReceive('fire')->with('budgets.store', [$budget])->once(); - - $this->action('POST', 'BudgetController@store'); - $this->assertRedirectedToRoute('budgets.index.budget'); - $this->assertSessionHas('success'); - } - - /** - * @covers \BudgetController::store - */ - public function testStoreComingFromDate() - { - $budget = f::create('Budget'); - - // test repository: - $this->_repository->shouldReceive('store')->andReturn($budget); - - // test event: - Event::shouldReceive('fire')->with('budgets.store', [$budget])->once(); - - $this->action('POST', 'BudgetController@store', ['from' => 'date']); - $this->assertRedirectedToRoute('budgets.index'); - $this->assertSessionHas('success'); - } - - /** - * @covers \BudgetController::store - */ - public function testStoreFails() - { - $budget = f::create('Budget'); - unset($budget->name); - - // test repository: - $this->_repository->shouldReceive('store')->once()->andReturn($budget); - - // test event: - $this->action('POST', 'BudgetController@store', ['name' => null]); - $this->assertRedirectedToRoute('budgets.create'); - $this->assertSessionHas('error'); - } - - /** - * @covers \BudgetController::store - */ - public function testStoreWithRecreation() - { - $budget = f::create('Budget'); - - // test repository: - $this->_repository->shouldReceive('store')->once()->andReturn($budget); - - // test event: - Event::shouldReceive('fire')->with('budgets.store', [$budget])->once(); - - $this->action('POST', 'BudgetController@store', ['name' => $budget->name, 'create' => '1']); - $this->assertRedirectedTo('http://localhost/budgets/create?'); - $this->assertSessionHas('success'); - } - - /** - * @covers \BudgetController::update - */ - public function testUpdate() - { - $budget = f::create('Budget'); - - // for successful binding with the budget to update: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->between(0, 2)->andReturn($budget->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - // update the budget - $this->_repository->shouldReceive('update')->andReturn($budget); - - // fire in the hole! - Event::shouldReceive('fire')->with('budgets.update', [$budget]); - - $this->action('POST', 'BudgetController@update', $budget->id); - $this->assertRedirectedToRoute('budgets.index.budget'); - $this->assertSessionHas('success'); - - } - - /** - * @covers \BudgetController::update - */ - public function testUpdateFails() - { - $budget = f::create('Budget'); - unset($budget->name); - - // for successful binding with the budget to update: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->between(0, 2)->andReturn($budget->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - // update the budget - $this->_repository->shouldReceive('update')->andReturn($budget); - - $this->action('POST', 'BudgetController@update', [$budget->id]); - $this->assertRedirectedToRoute('budgets.edit', $budget->id); - $this->assertSessionHas('error'); - - } - - /** - * @covers \BudgetController::update - */ - public function testUpdateFromDate() - { - $budget = f::create('Budget'); - - // for successful binding with the budget to update: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->between(0, 2)->andReturn($budget->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - // update the budget - $this->_repository->shouldReceive('update')->andReturn($budget); - - // fire in the hole! - Event::shouldReceive('fire')->with('budgets.update', [$budget]); - - $this->action('POST', 'BudgetController@update', [$budget->id, 'from' => 'date']); - $this->assertRedirectedToRoute('budgets.index'); - $this->assertSessionHas('success'); - - } -} \ No newline at end of file diff --git a/app/tests/CategoryTest.php b/app/tests/CategoryTest.php deleted file mode 100644 index 3fe4e0f578..0000000000 --- a/app/tests/CategoryTest.php +++ /dev/null @@ -1,220 +0,0 @@ -_repository = $this->mock('Firefly\Storage\Category\CategoryRepositoryInterface'); - $this->_category = $this->mock('Firefly\Helper\Controllers\CategoryInterface'); - $this->_user = m::mock('User', 'Eloquent'); - - } - - /** - * - */ - public function tearDown() - { - Mockery::close(); - } - - - /** - * @covers \CategoryController::create - */ - public function testCreate() - { - // test the view: - View::shouldReceive('make')->with('categories.create')->once()->andReturn(m::self()) - ->shouldReceive('with')->with('title', 'Create a new category')->once(); - - $this->action('GET', 'CategoryController@create'); - $this->assertResponseOk(); - - } - - /** - * @covers \CategoryController::delete - */ - public function testDelete() - { - - $category = f::create('Category'); - - // test the view: - View::shouldReceive('make')->with('categories.delete')->once()->andReturn(m::self()) - ->shouldReceive('with')->with('category', m::any())->once()->andReturn(m::self()) - ->shouldReceive('with')->with('title', 'Delete category "' . $category->name . '"')->once(); - - // for successful binding with the category to delete: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($category->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->action('GET', 'CategoryController@delete', $category->id); - $this->assertResponseOk(); - } - - /** - * @covers \CategoryController::destroy - */ - public function testDestroy() - { - $category = f::create('Category'); - - // for successful binding with the category to delete: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($category->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - // fire the repository: - $this->_repository->shouldReceive('destroy')->once()->andReturn(true); - - // fire and test: - $this->action('POST', 'CategoryController@destroy', $category->id); - $this->assertRedirectedToRoute('categories.index'); - $this->assertSessionHas('success'); - } - - /** - * @covers \CategoryController::edit - */ - public function testEdit() - { - $category = f::create('Category'); - - // for successful binding with the category to edit: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($category->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); // - - // test the view: - View::shouldReceive('make')->with('categories.edit')->once()->andReturn(m::self()) - ->shouldReceive('with')->with('category', m::any())->once()->andReturn(m::self()) - ->shouldReceive('with')->with('title', 'Edit category "' . $category->name . '"')->once(); - - - $this->action('GET', 'CategoryController@edit', $category->id); - $this->assertResponseOk(); - } - - /** - * @covers \CategoryController::index - */ - public function testIndex() - { - $category = f::create('Category'); - $collection = new Collection(); - $collection->add($category); - - $this->_repository->shouldReceive('get')->with()->once()->andReturn($collection); - - View::shouldReceive('make')->with('categories.index')->once()->andReturn(m::self()) - ->shouldReceive('with')->with('categories', $collection)->once()->andReturn(m::self()) - ->shouldReceive('with')->with('title', 'All your categories')->once(); - - - - $this->action('GET', 'CategoryController@index'); - $this->assertResponseOk(); - } - - /** - * @covers \CategoryController::show - */ - public function testShow() - { - $category = f::create('Category'); - - // for successful binding with the category to show: - Auth::shouldReceive('user')->andReturn($this->_user)->between(1, 3); - Auth::shouldReceive('check')->andReturn(true)->between(1, 2); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($category->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); // - - $this->session(['start' => new Carbon, 'end' => new Carbon]); - - - $this->_category->shouldReceive('journalsInRange')->once()->andReturn([]); - $this->action('GET', 'CategoryController@show', $category->id); - $this->assertResponseOk(); - } - - public function testStore() - { - $category = f::create('Category'); - $this->_repository->shouldReceive('store')->andReturn($category); - $this->action('POST', 'CategoryController@store'); - $this->assertRedirectedToRoute('categories.index'); - } - - public function testStoreFails() - { - $category = f::create('Category'); - unset($category->name); - $this->_repository->shouldReceive('store')->andReturn($category); - $this->action('POST', 'CategoryController@store'); - $this->assertRedirectedToRoute('categories.create'); - } - - public function testStoreRecreate() - { - $category = f::create('Category'); - $this->_repository->shouldReceive('store')->andReturn($category); - $this->action('POST', 'CategoryController@store', ['create' => '1']); - $this->assertRedirectedToRoute('categories.create'); - } - - public function testUpdate() - { - $category = f::create('Category'); - // for successful binding. - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($category->user_id); - $this->_repository->shouldReceive('update')->andReturn($category); - - $this->action('POST', 'CategoryController@update', $category->id); - $this->assertRedirectedToRoute('categories.index'); - - } - - public function testUpdateFails() - { - $category = f::create('Category'); - unset($category->name); - // for successful binding. - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($category->user_id); - $this->_repository->shouldReceive('update')->andReturn($category); - - $this->action('POST', 'CategoryController@update', [$category->id]); - $this->assertResponseStatus(302); - - } -} \ No newline at end of file diff --git a/app/tests/controllers/ChartControllerTest.php b/app/tests/controllers/ChartControllerTest.php deleted file mode 100644 index 3016ef1202..0000000000 --- a/app/tests/controllers/ChartControllerTest.php +++ /dev/null @@ -1,138 +0,0 @@ -_accounts = $this->mock('Firefly\Storage\Account\AccountRepositoryInterface'); - $this->_charts = $this->mock('Firefly\Helper\Controllers\ChartInterface'); -// $this->_category = $this->mock('Firefly\Helper\Controllers\CategoryInterface'); - $this->_user = m::mock('User', 'Eloquent'); - - } - - public function tearDown() - { - Mockery::close(); - } - - public function testCategoryShowChart() - { - $this->session(['start' => new Carbon, 'end' => new Carbon, 'range' => '1M']); - $category = f::create('Category'); - - // for successful binding: - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($category->user_id); - - $this->_charts->shouldReceive('categoryShowChart')->once()->andReturn([]); - - - $this->action('GET', 'ChartController@categoryShowChart', $category->id); - $this->assertResponseOk(); - } - - public function testHomeAccount() - { - $account = f::create('Account'); - $collection = new Collection(); - $collection->add($account); - $this->session(['start' => new Carbon, 'end' => new Carbon, 'range' => '1M']); - - // for successful binding: - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('bla@bla'); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn(1); - $this->_accounts->shouldReceive('getByIds')->andReturn($collection); - - $this->_charts->shouldReceive('account')->once()->andReturn([]); - - - $this->action('GET', 'ChartController@homeAccount'); - $this->assertResponseOk(); - } - - public function testHomeAccountInfo() - { - $account = f::create('Account'); - $accountType = \AccountType::whereType('Default account')->first(); - $account->accounttype()->associate($accountType); - $account->save(); - // for successful binding: - Auth::shouldReceive('user')->andReturn($account->user()->first()); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('bla@bla'); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($account->user_id); - $this->_accounts->shouldReceive('findByName')->andReturn($account); - - $this->_charts->shouldReceive('accountDailySummary')->once()->andReturn(['rows' => [], 'sum' => 0]); - - $this->call('GET', 'chart/home/info/' . $account->name . '/01/08/2014'); - $this->assertResponseOk(); - - } - - public function testHomeAccountWithAccount() - { - $account = f::create('Account'); - $this->session(['start' => new Carbon, 'end' => new Carbon, 'range' => '1M']); - - // for successful binding: - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('bla@bla'); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($account->user_id); - - $this->_charts->shouldReceive('account')->once()->andReturn([]); - - - $this->action('GET', 'ChartController@homeAccount', $account->id); - $this->assertResponseOk(); - } - - public function testHomeBudgets() - { - $date = new Carbon; - $this->session(['start' => $date]); - $this->_charts->shouldReceive('budgets')->once()->with($date)->andReturn([]); - - $this->action('GET', 'ChartController@homeBudgets'); - $this->assertResponseOk(); - } - - public function testHomeCategories() - { - $start = new Carbon; - $end = new Carbon; - - $this->_charts->shouldReceive('categories')->once()->with($start, $end)->andReturn([]); - - $this->session(['start' => $start, 'end' => $end]); - $this->action('GET', 'ChartController@homeCategories'); - $this->assertResponseOk(); - } - - -} \ No newline at end of file diff --git a/app/tests/controllers/HomeControllerTest.php b/app/tests/controllers/HomeControllerTest.php deleted file mode 100644 index 8238570470..0000000000 --- a/app/tests/controllers/HomeControllerTest.php +++ /dev/null @@ -1,142 +0,0 @@ -_accounts = $this->mock('Firefly\Helper\Controllers\AccountInterface'); - $this->_repository = $this->mock('Firefly\Storage\Account\AccountRepositoryInterface'); - $this->_preferences = $this->mock('Firefly\Helper\Preferences\PreferencesHelperInterface'); - $this->_journals = $this->mock('Firefly\Storage\TransactionJournal\TransactionJournalRepositoryInterface'); - $this->_reminders = $this->mock('Firefly\Storage\Reminder\ReminderRepositoryInterface'); - - - } - - public function tearDown() - { - Mockery::close(); - } - - public function testFlush() - { - $this->action('GET', 'HomeController@flush'); - $this->assertRedirectedToRoute('index'); - - } - - public function testIndex() - { - // mock preference: - $preference = $this->mock('Preference'); - $preference->shouldReceive('getAttribute')->with('data')->andReturn([]); - - Event::shouldReceive('fire')->with('limits.check'); - Event::shouldReceive('fire')->with('piggybanks.check'); - Event::shouldReceive('fire')->with('recurring.check'); - - $this->_reminders->shouldReceive('getCurrentRecurringReminders')->once()->andReturn([]); - - // mock accounts: - $this->_repository->shouldReceive('count')->once()->andReturn(0); - $this->_repository->shouldReceive('getActiveDefault')->once()->andReturn([]); - - // mock preferences: - $this->_preferences->shouldReceive('get')->with('frontpageAccounts', [])->andReturn($preference); - - $this->action('GET', 'HomeController@index'); - $this->assertResponseOk(); - } - - public function testIndexWithAccount() - { - $account = f::create('Account'); - $start = new Carbon; - $end = new Carbon; - $this->session(['start' => $start, 'end' => $end]); - - - // mock preference: - $preference = $this->mock('Preference'); - $preference->shouldReceive('getAttribute')->with('data')->andReturn([$account->id]); - - Event::shouldReceive('fire')->with('limits.check'); - Event::shouldReceive('fire')->with('piggybanks.check'); - Event::shouldReceive('fire')->with('recurring.check'); - - $this->_reminders->shouldReceive('getCurrentRecurringReminders')->once()->andReturn([]); - - - // mock accounts: - $this->_repository->shouldReceive('count')->once()->andReturn(0); - $this->_repository->shouldReceive('getByIds')->with([$account->id])->once()->andReturn([$account]); - - // mock preferences: - $this->_preferences->shouldReceive('get')->with('frontpageAccounts', [])->andReturn($preference); - - // mock journals: - $this->_journals->shouldReceive('getByAccountInDateRange')->once()->with($account, 10, $start, $end)->andReturn( - [1, 2] - ); - - $this->action('GET', 'HomeController@index'); - $this->assertResponseOk(); - } - - public function testIndexWithAccounts() - { - $accountOne = f::create('Account'); - $accountTwo = f::create('Account'); - $accounThree = f::create('Account'); - $set = [$accountOne, $accountTwo, $accounThree]; - $ids = [$accountOne->id, $accountTwo->id, $accounThree->id]; - $start = new Carbon; - $end = new Carbon; - $this->session(['start' => $start, 'end' => $end]); - - - // mock preference: - $preference = $this->mock('Preference'); - $preference->shouldReceive('getAttribute')->with('data')->andReturn($ids); - - Event::shouldReceive('fire')->with('limits.check'); - Event::shouldReceive('fire')->with('piggybanks.check'); - Event::shouldReceive('fire')->with('recurring.check'); - - $this->_reminders->shouldReceive('getCurrentRecurringReminders')->once()->andReturn([]); - - - // mock accounts: - $this->_repository->shouldReceive('count')->once()->andReturn(0); - $this->_repository->shouldReceive('getByIds')->with($ids)->once()->andReturn( - $set - ); - - // mock preferences: - $this->_preferences->shouldReceive('get')->with('frontpageAccounts', [])->andReturn($preference); - - // mock journals: - $this->_journals->shouldReceive('getByAccountInDateRange')->andReturn([1, 2]); - - $this->action('GET', 'HomeController@index'); - $this->assertResponseOk(); - } -} \ No newline at end of file diff --git a/app/tests/controllers/JsonControllerTest.php b/app/tests/controllers/JsonControllerTest.php deleted file mode 100644 index 37f576341e..0000000000 --- a/app/tests/controllers/JsonControllerTest.php +++ /dev/null @@ -1,45 +0,0 @@ -_accounts = $this->mock('Firefly\Storage\Account\AccountRepositoryInterface'); - $this->_categories = $this->mock('Firefly\Storage\Category\CategoryRepositoryInterface'); - } - - public function tearDown() - { - Mockery::close(); - } - - public function testBeneficiaries() - { - $beneficiary = f::create('Account'); - - $this->_accounts->shouldReceive('getBeneficiaries')->once()->andReturn([$beneficiary]); - $this->action('GET', 'JsonController@beneficiaries'); - $this->assertResponseOk(); - } - - public function testCategories() - { - $category = f::create('Category'); - $this->_categories->shouldReceive('get')->once()->andReturn([$category]); - $this->action('GET', 'JsonController@categories'); - $this->assertResponseOk(); - } -} \ No newline at end of file diff --git a/app/tests/controllers/LimitControllerTest.php b/app/tests/controllers/LimitControllerTest.php deleted file mode 100644 index a003d0014f..0000000000 --- a/app/tests/controllers/LimitControllerTest.php +++ /dev/null @@ -1,245 +0,0 @@ -_user = m::mock('User', 'Eloquent'); - $this->_budgets = $this->mock('Firefly\Storage\Budget\BudgetRepositoryInterface'); - $this->_limits = $this->mock('Firefly\Storage\Limit\LimitRepositoryInterface'); - } - - public function tearDown() - { - Mockery::close(); - } - - public function testCreate() - { - $this->_budgets->shouldReceive('getAsSelectList')->andReturn([]); - $this->action('GET', 'LimitController@create'); - $this->assertResponseOk(); - } - - public function testDelete() - { - $limit = f::create('Limit'); - $limitrepetition = f::create('LimitRepetition'); - $limit->limitrepetitions()->save($limitrepetition); - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($limit->budget()->first()->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->once()->andReturn('some@email'); - - $this->action('GET', 'LimitController@delete', $limit->id); - $this->assertResponseOk(); - } - - public function testDestroy() - { - $limit = f::create('Limit'); - $limitrepetition = f::create('LimitRepetition'); - $limit->limitrepetitions()->save($limitrepetition); - - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($limit->budget()->first()->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->_limits->shouldReceive('destroy')->once()->andReturn(true); - - $this->action('POST', 'LimitController@destroy', $limit->id); - $this->assertResponseStatus(302); - } - - public function testDestroyFails() - { - $limit = f::create('Limit'); - $limitrepetition = f::create('LimitRepetition'); - $limit->limitrepetitions()->save($limitrepetition); - - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($limit->budget()->first()->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->_limits->shouldReceive('destroy')->once()->andReturn(false); - - $this->action('POST', 'LimitController@destroy', $limit->id); - $this->assertResponseStatus(302); - } - - public function testDestroyRedirect() - { - $limit = f::create('Limit'); - $limitrepetition = f::create('LimitRepetition'); - $limit->limitrepetitions()->save($limitrepetition); - - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($limit->budget()->first()->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->_limits->shouldReceive('destroy')->once()->andReturn(true); - - $this->action('POST', 'LimitController@destroy', [$limit->id, 'from' => 'date']); - $this->assertResponseStatus(302); - } - - public function testEdit() - { - $limit = f::create('Limit'); - $limitrepetition = f::create('LimitRepetition'); - $limit->limitrepetitions()->save($limitrepetition); - - $this->_budgets->shouldReceive('getAsSelectList')->andReturn([]); - - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($limit->budget()->first()->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->action('GET', 'LimitController@edit', $limit->id); - $this->assertResponseOk(); - } - - public function testStore() - { - $limit = f::create('Limit'); - $limitrepetition = f::create('LimitRepetition'); - $limit->limitrepetitions()->save($limitrepetition); - - $this->_limits->shouldReceive('store')->once()->andReturn($limit); - $this->action('POST', 'LimitController@store'); - $this->assertRedirectedToRoute('budgets.index.budget'); - $this->assertResponseStatus(302); - } - - public function testStoreFails() - { - $budget = f::create('Budget'); - $limit = f::create('Limit'); - $limit->budget()->associate($budget); - $limit->save(); - $limitrepetition = f::create('LimitRepetition'); - $limit->limitrepetitions()->save($limitrepetition); - unset($limit->startdate); - unset($limit->component_id); - - - $this->_limits->shouldReceive('store')->once()->andReturn($limit); - $this->action('POST', 'LimitController@store', $budget->id); - $this->assertResponseStatus(302); - } - - public function testStoreRedirect() - { - $budget = f::create('Budget'); - $limit = f::create('Limit'); - $limit->budget()->associate($budget); - $limit->save(); - $limitrepetition = f::create('LimitRepetition'); - $limit->limitrepetitions()->save($limitrepetition); - - $this->_limits->shouldReceive('store')->once()->andReturn($limit); - $this->action('POST', 'LimitController@store', [$budget->id, 'from' => 'date']); - $this->assertResponseStatus(302); - } - - public function testUpdate() - { - $limit = f::create('Limit'); - $limitrepetition = f::create('LimitRepetition'); - $limit->limitrepetitions()->save($limitrepetition); - - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($limit->budget()->first()->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->_limits->shouldReceive('update')->once()->andReturn($limit); - - - $this->action( - 'POST', 'LimitController@update', - [$limit->id, - 'date' => '02-02-2012', - 'period' => 'monthly', - 'repeats' => 0, - 'amount' => '0.01' - - ] - ); - $this->assertResponseStatus(302); - } - - public function testUpdateFails() - { - $limit = f::create('Limit'); - $limitrepetition = f::create('LimitRepetition'); - $limit->limitrepetitions()->save($limitrepetition); - - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($limit->budget()->first()->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - unset($limit->amount); - $this->_limits->shouldReceive('update')->once()->andReturn($limit); - - - $this->action( - 'POST', 'LimitController@update', - $limit->id - ); - $this->assertResponseStatus(302); - } - - public function testUpdateRedirect() - { - $limit = f::create('Limit'); - $limitrepetition = f::create('LimitRepetition'); - $limit->limitrepetitions()->save($limitrepetition); - - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($limit->budget()->first()->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->_limits->shouldReceive('update')->once()->andReturn($limit); - - - $this->action( - 'POST', 'LimitController@update', - [$limit->id, - 'date' => '02-02-2012', - 'period' => 'monthly', - 'repeats' => 0, - 'amount' => '0.01', - 'from' => 'date' - - ] - ); - $this->assertResponseStatus(302); - } - - -} \ No newline at end of file diff --git a/app/tests/controllers/PiggybankControllerTest.php b/app/tests/controllers/PiggybankControllerTest.php deleted file mode 100644 index 3e9ec46f56..0000000000 --- a/app/tests/controllers/PiggybankControllerTest.php +++ /dev/null @@ -1,440 +0,0 @@ -_user = m::mock('User', 'Eloquent'); - $this->_accounts = $this->mock('Firefly\Storage\Account\AccountRepositoryInterface'); - $this->_piggybanks = $this->mock('Firefly\Storage\Piggybank\PiggybankRepositoryInterface'); - - } - - public function tearDown() - { - m::close(); - } - - public function testAddMoneyGET() - { - $piggyBank = f::create('Piggybank'); - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn( - $piggyBank->account()->first()->user_id - ); - $this->_piggybanks->shouldReceive('leftOnAccount')->andReturn(1); - - $this->action('GET', 'PiggybankController@addMoney', $piggyBank->id); - $this->assertResponseOk(); - - } - - public function testCreatePiggybank() - { - $this->_accounts->shouldReceive('getActiveDefaultAsSelectList')->once()->andReturn([]); - $this->action('GET', 'PiggybankController@createPiggybank'); - $this->assertResponseOk(); - - } - - public function testCreateRepeated() - { - $this->_accounts->shouldReceive('getActiveDefaultAsSelectList')->once()->andReturn([]); - $this->action('GET', 'PiggybankController@createRepeated'); - $this->assertResponseOk(); - - } - - public function testDelete() - { - $piggyBank = f::create('Piggybank'); - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn( - $piggyBank->account()->first()->user_id - ); - $this->_user->shouldReceive('getAttribute')->with('email')->once()->andReturn('some@email'); - - - $this->action('GET', 'PiggybankController@delete', $piggyBank->id); - $this->assertResponseOk(); - } - - public function testDestroy() - { - $piggyBank = f::create('Piggybank'); - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn( - $piggyBank->account()->first()->user_id - ); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - $this->_piggybanks->shouldReceive('destroy')->andReturn(true); - Event::shouldReceive('fire')->with('piggybanks.destroy', [$piggyBank]); - - - $this->action('POST', 'PiggybankController@destroy', $piggyBank->id); - $this->assertResponseStatus(302); - } - - public function testEdit() - { - $piggyBank = f::create('Piggybank'); - - $this->_accounts->shouldReceive('getActiveDefaultAsSelectList')->once()->andReturn([]); - - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn( - $piggyBank->account()->first()->user_id - ); - $this->_user->shouldReceive('getAttribute')->with('email')->once()->andReturn('some@email'); - - - $this->action('GET', 'PiggybankController@edit', $piggyBank->id); - $this->assertResponseOk(); - } - - public function testEditRepeated() - { - $piggyBank = f::create('Piggybank'); - $piggyBank->repeats = 1; - $piggyBank->save(); - - - $this->_accounts->shouldReceive('getActiveDefaultAsSelectList')->once()->andReturn([]); - - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn( - $piggyBank->account()->first()->user_id - ); - $this->_user->shouldReceive('getAttribute')->with('email')->once()->andReturn('some@email'); - - $this->action('GET', 'PiggybankController@edit', $piggyBank->id); - $this->assertResponseOk(); - } - - public function testIndex() - { - $aOne = f::create('Account'); - $aTwo = f::create('Account'); - - $one = f::create('Piggybank'); - $one->account()->associate($aOne); - $two = f::create('Piggybank'); - $two->account()->associate($aOne); - $three = f::create('Piggybank'); - $three->account()->associate($aTwo); - $this->_piggybanks->shouldReceive('get')->andReturn([$one, $two, $three]); - $this->_piggybanks->shouldReceive('countRepeating')->andReturn(0); - $this->_piggybanks->shouldReceive('leftOnAccount')->andReturn(0); - $this->_piggybanks->shouldReceive('countNonrepeating')->andReturn(0); - Event::shouldReceive('fire')->with('piggybanks.change'); - - - $this->action('GET', 'PiggybankController@index'); - $this->assertResponseOk(); - } - - public function testModifyMoneyAddPOST() - { - $piggyBank = f::create('Piggybank'); - $piggyBank->targetamount = 200; - $piggyBank->save(); - $input = [ - $piggyBank->id, - 'amount' => 10.0, - 'what' => 'add' - ]; - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn( - $piggyBank->account()->first()->user_id - ); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - Event::shouldReceive('fire'); //->with('piggybanks.modifyAmountAdd', [$piggyBank, 10.0]); - $this->_piggybanks->shouldReceive('modifyAmount')->once(); - - $this->_piggybanks->shouldReceive('leftOnAccount')->once()->andReturn(200); - - - $this->action('POST', 'PiggybankController@modMoney', $input); - $this->assertSessionHas('success'); - $this->assertResponseStatus(302); - - } - - public function testModifyMoneyAddPOSTFails() - { - $piggyBank = f::create('Piggybank'); - $piggyBank->targetamount = 200; - $piggyBank->save(); - $input = [ - $piggyBank->id, - 'amount' => 10.0, - 'what' => 'add' - ]; - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($piggyBank->account()->first()->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - Event::shouldReceive('fire')->with('piggybanks.modifyAmountAdd', [$piggyBank, -10.0]); - $this->_piggybanks->shouldReceive('leftOnAccount')->once()->andReturn(5); - - - $this->action('POST', 'PiggybankController@modMoney', $input); - $this->assertSessionHas('warning'); - $this->assertResponseStatus(302); - - } - - /** - * @expectedException \Firefly\Exception\FireflyException - */ - public function testModifyMoneyPOSTException() - { - $piggyBank = f::create('Piggybank'); - $piggyBank->targetamount = 200; - $piggyBank->save(); - $input = [ - $piggyBank->id, - 'amount' => 10.0, - 'what' => 'yomoma' - ]; - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($piggyBank->account()->first()->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - - $this->action('POST', 'PiggybankController@modMoney', $input); - $this->assertSessionHas('warning'); - $this->assertResponseStatus(302); - - - } - - public function testModifyMoneyRemovePOST() - { - $pig = $this->mock('Piggybank'); - $piggybank = f::create('Piggybank'); - $rep = f::create('PiggybankRepetition'); - $rep->piggybank_id = $piggybank->id; - $rep->save(); - - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn( - $rep->piggybank()->first()->account()->first()->user_id - ); - $pig->shouldReceive('currentRelevantRep')->andReturn($rep); - $this->_piggybanks->shouldReceive('leftOnAccount')->andReturn(11); - $this->_piggybanks->shouldReceive('modifyAmount')->once(); - - $input = [ - $rep->piggybank()->first()->id, - 'amount' => 10.0, - 'what' => 'remove' - ]; - - $this->action('POST', 'PiggybankController@modMoney', $input); - $this->assertSessionHas('success'); - $this->assertResponseStatus(302); - - } - - public function testModifyMoneyRemovePOSTFails() - { - $pig = $this->mock('Piggybank'); - $piggybank = f::create('Piggybank'); - $rep = f::create('PiggybankRepetition'); - $rep->piggybank_id = $piggybank->id; - $rep->currentAmount = 5; - $rep->save(); - - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn( - $rep->piggybank()->first()->account()->first()->user_id - ); - $pig->shouldReceive('currentRelevantRep')->andReturn($rep); - - $input = [ - $rep->piggybank()->first()->id, - 'amount' => 10.0, - 'what' => 'remove' - ]; - - $this->action('POST', 'PiggybankController@modMoney', $input); - $this->assertSessionHas('warning'); - $this->assertResponseStatus(302); - - } - - public function testRemoveMoneyGET() - { - $pig = $this->mock('Piggybank'); - $piggybank = f::create('Piggybank'); - $rep = f::create('PiggybankRepetition'); - $rep->piggybank_id = $piggybank->id; - $rep->save(); - - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn( - $rep->piggybank()->first()->account()->first()->user_id - ); - $pig->shouldReceive('currentRelevantRep')->andReturn($rep); - - $this->_piggybanks->shouldReceive('leftOnAccount')->andReturn(1)->once(); - - $this->action('GET', 'PiggybankController@removeMoney', $piggybank->id); - $this->assertResponseOk(); - } - - public function testShow() - { - $pig = $this->mock('Piggybank'); - $piggybank = f::create('Piggybank'); - $rep = f::create('PiggybankRepetition'); - $rep->piggybank_id = $piggybank->id; - $rep->save(); - - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn( - $piggybank->account()->first()->user_id - ); - $this->_user->shouldReceive('getAttribute')->andReturn('some@email'); - - $pig->shouldReceive('currentRelevantRep')->andReturn($rep); - - // repos: - $this->_piggybanks->shouldReceive('leftOnAccount'); - - $this->action('GET', 'PiggybankController@show', $piggybank->id); - $this->assertResponseOk(); - } - - public function testStoreRepeated() - { - $piggy = f::create('Piggybank'); - $piggy->repeats = 1; - $piggy->save(); - Event::shouldReceive('fire')->with('piggybanks.store', [$piggy])->once(); - $this->_piggybanks->shouldReceive('store')->once()->andReturn($piggy); - $this->action('POST', 'PiggybankController@storeRepeated'); - $this->assertResponseStatus(302); - } - - public function testStoreRepeatedFails() - { - $piggy = f::create('Piggybank'); - unset($piggy->id); - $this->_piggybanks->shouldReceive('store')->once()->andReturn($piggy); - $this->action('POST', 'PiggybankController@storeRepeated'); - $this->assertResponseStatus(302); - } - - public function testUpdate() - { - $piggyBank = f::create('Piggybank'); - - $this->_piggybanks->shouldReceive('update')->andReturn($piggyBank); - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn( - $piggyBank->account()->first()->user_id - ); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - Event::shouldReceive('fire')->with('piggybanks.update', [$piggyBank]); - - $this->action('POST', 'PiggybankController@update', $piggyBank->id); - $this->assertResponseStatus(302); - } - - public function testUpdateFails() - { - $piggyBank = f::create('Piggybank'); - unset($piggyBank->name); - - $this->_piggybanks->shouldReceive('update')->andReturn($piggyBank); - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn( - $piggyBank->account()->first()->user_id - ); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - Event::shouldReceive('fire')->with('piggybanks.change'); - - $this->action('POST', 'PiggybankController@update', $piggyBank->id); - $this->assertResponseStatus(302); - } - - public function teststorePiggybank() - { - $piggy = f::create('Piggybank'); - $piggy->repeats = 0; - $piggy->save(); - Event::shouldReceive('fire')->with('piggybanks.store', [$piggy])->once(); - - - $this->_piggybanks->shouldReceive('store')->once()->andReturn($piggy); - $this->action('POST', 'PiggybankController@storePiggybank'); - $this->assertResponseStatus(302); - } - - public function teststorePiggybankFails() - { - $piggy = f::create('Piggybank'); - unset($piggy->id); - $this->_piggybanks->shouldReceive('store')->once()->andReturn($piggy); - $this->action('POST', 'PiggybankController@storePiggybank'); - $this->assertResponseStatus(302); - } - - -} \ No newline at end of file diff --git a/app/tests/controllers/PreferencesControllerTest.php b/app/tests/controllers/PreferencesControllerTest.php deleted file mode 100644 index 50eb036056..0000000000 --- a/app/tests/controllers/PreferencesControllerTest.php +++ /dev/null @@ -1,56 +0,0 @@ -_user = m::mock('User', 'Eloquent'); - $this->_helper = $this->mock('Firefly\Helper\Preferences\PreferencesHelperInterface'); - $this->_accounts = $this->mock('Firefly\Storage\Account\AccountRepositoryInterface'); - - } - - public function tearDown() - { - m::close(); - } - - public function testIndex() - { - $viewRange = $this->mock('Preference'); - $viewRange->shouldReceive('getAttribute')->with('data')->andReturn('1M'); - - $this->_accounts->shouldReceive('getDefault')->andReturn([]); - $this->_helper->shouldReceive('get')->with('viewRange', '1M')->andReturn($viewRange); - $this->_helper->shouldReceive('get')->with('frontpageAccounts', [])->andReturn([]); - - - $this->action('GET', 'PreferencesController@index'); - $this->assertResponseOk(); - } - - public function testPostIndex() - { - $this->_helper->shouldReceive('set')->with('frontpageAccounts', [1]); - $this->_helper->shouldReceive('set')->with('viewRange', '1M'); - $this->action('POST', 'PreferencesController@postIndex', ['frontpageAccounts' => [1], 'viewRange' => '1M']); - $this->assertResponseStatus(302); - } -} \ No newline at end of file diff --git a/app/tests/controllers/ProfileControllerTest.php b/app/tests/controllers/ProfileControllerTest.php deleted file mode 100644 index 9eb6fd95d7..0000000000 --- a/app/tests/controllers/ProfileControllerTest.php +++ /dev/null @@ -1,135 +0,0 @@ -_user = m::mock('User', 'Eloquent'); - - } - - public function tearDown() - { - m::close(); - } - - - public function testChangePassword() - { - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($this->_user->id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->action('GET', 'ProfileController@changePassword'); - $this->assertResponseOk(); - } - - public function testIndex() - { - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($this->_user->id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->action('GET', 'ProfileController@index'); - $this->assertResponseOk(); - } - - public function testPostChangePasswordDifferentNew() - { - $user = f::create('User'); - // for binding - Auth::shouldReceive('user')->andReturn($user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($user->id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn($user->email); - $this->_user->shouldReceive('getAttribute')->with('password')->andReturn($user->password); - - $this->action( - 'POST', 'ProfileController@postChangePassword', - ['old' => 'sander', 'new1' => 'sander1', 'new2' => 'sander2'] - ); - $this->assertResponseOk(); - } - - public function testPostChangePasswordOK() - { - $user = f::create('User'); - $user->password = 'sander'; - $user->save(); - // for binding - Auth::shouldReceive('user')->andReturn($user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($user->id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn($user->email); - $this->_user->shouldReceive('getAttribute')->with('password')->andReturn($user->password); - - $this->action( - 'POST', 'ProfileController@postChangePassword', - ['old' => 'sander', 'new1' => 'sander2', 'new2' => 'sander2'] - ); - $this->assertSessionHas('success'); - $this->assertResponseStatus(302); - } - - - public function testPostChangePasswordNoCurrent() - { - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($this->_user->id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - $this->_user->shouldReceive('getAttribute')->with('password')->andReturn('Blablabla'); - - $this->action('POST', 'ProfileController@postChangePassword', ['old' => '']); - $this->assertResponseOk(); - } - - public function testPostChangePasswordNoMatchNew() - { - $user = f::create('User'); - // for binding - Auth::shouldReceive('user')->andReturn($user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($user->id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn($user->email); - $this->_user->shouldReceive('getAttribute')->with('password')->andReturn($user->password); - - $this->action( - 'POST', 'ProfileController@postChangePassword', ['old' => 'sander', 'new1' => 'sander', 'new2' => 'sander'] - ); - $this->assertResponseOk(); - } - - public function testPostChangePasswordSame() - { - $user = f::create('User'); - // for binding - Auth::shouldReceive('user')->andReturn($user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($user->id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn($user->email); - $this->_user->shouldReceive('getAttribute')->with('password')->andReturn($user->password); - - $this->action('POST', 'ProfileController@postChangePassword', ['old' => 'sander']); - $this->assertResponseOk(); - } - -} \ No newline at end of file diff --git a/app/tests/controllers/RecurringControllerTest.php b/app/tests/controllers/RecurringControllerTest.php deleted file mode 100644 index 7448e65f26..0000000000 --- a/app/tests/controllers/RecurringControllerTest.php +++ /dev/null @@ -1,178 +0,0 @@ -_user = m::mock('User', 'Eloquent'); - $this->_repository = $this->mock( - 'Firefly\Storage\RecurringTransaction\RecurringTransactionRepositoryInterface' - ); - - } - - public function tearDown() - { - m::close(); - } - - public function testCreate() - { - $this->action('GET', 'RecurringController@create'); - $this->assertResponseOk(); - } - - public function testDelete() - { - $recurringTransaction = f::create('RecurringTransaction'); - - - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($recurringTransaction->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->once()->andReturn('some@email'); - - - $this->action('GET', 'RecurringController@delete', $recurringTransaction->id); - $this->assertResponseOk(); - } - - public function testDestroy() - { - $recurringTransaction = f::create('RecurringTransaction'); - - Event::shouldReceive('fire')->with('recurring.destroy',m::any()); - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($recurringTransaction->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - $this->_repository->shouldReceive('destroy')->andReturn(true); - - $this->action('POST', 'RecurringController@destroy', $recurringTransaction->id); - $this->assertResponseStatus(302); - } - - public function testDestroyFails() - { - $recurringTransaction = f::create('RecurringTransaction'); - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - Event::shouldReceive('fire')->with('recurring.destroy',m::any()); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($recurringTransaction->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - $this->_repository->shouldReceive('destroy')->andReturn(false); - - $this->action('POST', 'RecurringController@destroy', $recurringTransaction->id); - $this->assertResponseStatus(302); - } - - public function testEdit() - { - $recurringTransaction = f::create('RecurringTransaction'); - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($recurringTransaction->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->once()->andReturn('some@email'); - - $this->action('GET', 'RecurringController@edit', $recurringTransaction->id); - $this->assertResponseOk(); - } - - public function testIndex() - { - - $this->_repository->shouldReceive('get')->andReturn([]); - - $this->action('GET', 'RecurringController@index'); - $this->assertResponseOk(); - } - - public function testShow() - { - $recurringTransaction = f::create('RecurringTransaction'); - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($recurringTransaction->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - - $this->action('GET', 'RecurringController@show', $recurringTransaction->id); - $this->assertResponseOk(); - } - - public function testStore() - { - $recurringTransaction = f::create('RecurringTransaction'); - - Event::shouldReceive('fire')->with('recurring.store',m::any()); - - $this->_repository->shouldReceive('store')->andReturn($recurringTransaction); - $this->action('POST', 'RecurringController@store'); - $this->assertResponseStatus(302); - } - - public function testStoreRedirect() - { - $recurringTransaction = f::create('RecurringTransaction'); - - Event::shouldReceive('fire')->with('recurring.store',m::any()); - - $this->_repository->shouldReceive('store')->andReturn($recurringTransaction); - $this->action('POST', 'RecurringController@store', ['create' => '1']); - $this->assertResponseStatus(302); - } - - public function testStoreFails() - { - $recurringTransaction = f::create('RecurringTransaction'); - unset($recurringTransaction->active); - unset($recurringTransaction->automatch); - - $this->_repository->shouldReceive('store')->andReturn($recurringTransaction); - $this->action('POST', 'RecurringController@store', ['create' => '1']); - $this->assertResponseStatus(302); - } - - public function testUpdate() - { - $recurringTransaction = f::create('RecurringTransaction'); - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->andReturn($recurringTransaction->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - Event::shouldReceive('fire')->with('recurring.update',m::any()); - - $this->_repository->shouldReceive('update')->andReturn($recurringTransaction); - - - $this->action('POST', 'RecurringController@update', $recurringTransaction->id); - $this->assertResponseStatus(302); - } -} \ No newline at end of file diff --git a/app/tests/controllers/ReportControllerTest.php b/app/tests/controllers/ReportControllerTest.php deleted file mode 100644 index c83a18e91c..0000000000 --- a/app/tests/controllers/ReportControllerTest.php +++ /dev/null @@ -1,30 +0,0 @@ -action('GET', 'ReportController@index'); - $this->assertResponseOk(); - } - -} \ No newline at end of file diff --git a/app/tests/controllers/SearchControllerTest.php b/app/tests/controllers/SearchControllerTest.php deleted file mode 100644 index 36556bde42..0000000000 --- a/app/tests/controllers/SearchControllerTest.php +++ /dev/null @@ -1,30 +0,0 @@ -action('GET', 'SearchController@index'); - $this->assertResponseOk(); - } - -} \ No newline at end of file diff --git a/app/tests/controllers/TransactionControllerTest.php b/app/tests/controllers/TransactionControllerTest.php deleted file mode 100644 index 565bb066da..0000000000 --- a/app/tests/controllers/TransactionControllerTest.php +++ /dev/null @@ -1,312 +0,0 @@ -_user = m::mock('User', 'Eloquent'); - $this->_repository = $this->mock('Firefly\Storage\TransactionJournal\TransactionJournalRepositoryInterface'); - $this->_accounts = $this->mock('Firefly\Storage\Account\AccountRepositoryInterface'); - $this->_budgets = $this->mock('Firefly\Storage\Budget\BudgetRepositoryInterface'); - $this->_piggies = $this->mock('Firefly\Storage\Piggybank\PiggybankRepositoryInterface'); - - } - - public function tearDown() - { - m::close(); - } - - public function testCreateDeposit() - { - $this->_accounts->shouldReceive('getActiveDefaultAsSelectList')->andReturn([]); - $this->_budgets->shouldReceive('getAsSelectList')->andReturn([]); - $this->_piggies->shouldReceive('get')->andReturn([]); - - $this->action('GET', 'TransactionController@create', ['what' => 'deposit']); - $this->assertResponseOk(); - } - - public function testCreateTransfer() - { - $this->_accounts->shouldReceive('getActiveDefaultAsSelectList')->andReturn([]); - $this->_budgets->shouldReceive('getAsSelectList')->andReturn([]); - $this->_piggies->shouldReceive('get')->andReturn([]); - $this->action('GET', 'TransactionController@create', ['what' => 'transfer']); - $this->assertResponseOk(); - } - - public function testCreateWithdrawal() - { - $this->_accounts->shouldReceive('getActiveDefaultAsSelectList')->andReturn([]); - $this->_budgets->shouldReceive('getAsSelectList')->andReturn([]); - $this->_piggies->shouldReceive('get')->andReturn([]); - $this->action('GET', 'TransactionController@create', ['what' => 'withdrawal']); - $this->assertResponseOk(); - } - - public function testDelete() - { - $journal = f::create('TransactionJournal'); - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($journal->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->action('GET', 'TransactionController@delete', $journal->id); - $this->assertResponseOk(); - } - - public function testDestroy() - { - $journal = f::create('TransactionJournal'); - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($journal->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->action('POST', 'TransactionController@destroy', $journal->id); - $this->assertResponseStatus(302); - } - - public function testEdit() - { - $journal = f::create('TransactionJournal'); - $type = f::create('TransactionType'); - $type->type = 'Withdrawal'; - $type->save(); - $journal->transactiontype()->associate($type); - $journal->save(); - - $category = f::create('Category'); - $journal->categories()->save($category); - - $budget = f::create('Budget'); - $journal->budgets()->save($budget); - - $one = f::create('Transaction'); - $two = f::create('Transaction'); - $one->transactionjournal()->associate($journal); - $two->transactionjournal()->associate($journal); - $one->save(); - $two->save(); - - $this->_accounts->shouldReceive('getActiveDefaultAsSelectList')->andReturn([]); - $this->_budgets->shouldReceive('getAsSelectList')->andReturn([]); - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($journal->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->_piggies->shouldReceive('get')->once()->andReturn([]); - - $this->action('GET', 'TransactionController@edit', $journal->id); - $this->assertResponseOk(); - } - - public function testEditDeposit() - { - $journal = f::create('TransactionJournal'); - $type = f::create('TransactionType'); - $type->type = 'Deposit'; - $type->save(); - $journal->transactiontype()->associate($type); - $journal->save(); - - $category = f::create('Category'); - $journal->categories()->save($category); - - $budget = f::create('Budget'); - $journal->budgets()->save($budget); - - $one = f::create('Transaction'); - $two = f::create('Transaction'); - $one->transactionjournal()->associate($journal); - $two->transactionjournal()->associate($journal); - $one->save(); - $two->save(); - - $this->_accounts->shouldReceive('getActiveDefaultAsSelectList')->andReturn([]); - $this->_budgets->shouldReceive('getAsSelectList')->andReturn([]); - - $this->_piggies->shouldReceive('get')->once()->andReturn([]); - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($journal->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->action('GET', 'TransactionController@edit', $journal->id); - $this->assertResponseOk(); - } - - public function testEditTransfer() - { - $journal = f::create('TransactionJournal'); - $type = f::create('TransactionType'); - $type->type = 'Transfer'; - $type->save(); - $journal->transactiontype()->associate($type); - $journal->save(); - - $category = f::create('Category'); - $journal->categories()->save($category); - - $budget = f::create('Budget'); - $journal->budgets()->save($budget); - - $one = f::create('Transaction'); - $two = f::create('Transaction'); - $one->transactionjournal()->associate($journal); - $two->transactionjournal()->associate($journal); - $one->save(); - $two->save(); - - $this->_accounts->shouldReceive('getActiveDefaultAsSelectList')->andReturn([]); - $this->_budgets->shouldReceive('getAsSelectList')->andReturn([]); - $this->_piggies->shouldReceive('get')->once()->andReturn([]); - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($journal->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->action('GET', 'TransactionController@edit', $journal->id); - $this->assertResponseOk(); - } - - public function testIndex() - { - - $journal = f::create('TransactionJournal'); - $type = f::create('TransactionType'); - $type->type = 'Withdrawal'; - $type->save(); - $journal->transactiontype()->associate($type); - $journal->save(); - - $one = f::create('Transaction'); - $two = f::create('Transaction'); - $one->transactionjournal()->associate($journal); - $two->transactionjournal()->associate($journal); - $one->save(); - $two->save(); - - // make a paginator - $paginator = Paginator::make([$journal], 1, 1); - - - $this->_repository->shouldReceive('paginate')->with(25)->andReturn($paginator); - $this->_repository->shouldReceive('get')->andReturn([]); - $this->action('GET', 'TransactionController@index'); - $this->assertResponseOk(); - } - - public function testShow() - { - $journal = f::create('TransactionJournal'); - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($journal->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->action('GET', 'TransactionController@show', $journal->id); - $this->assertResponseOk(); - } - - public function testStore() - { - $journal = f::create('TransactionJournal'); - - $this->_repository->shouldReceive('store')->andReturn($journal); - - $this->action('POST', 'TransactionController@store', ['what' => 'deposit']); - $this->assertResponseStatus(302); - } - - public function testStoreFails() - { - $journal = f::create('TransactionJournal'); - unset($journal->description); - - $this->_repository->shouldReceive('store')->andReturn($journal); - - $this->action('POST', 'TransactionController@store', ['what' => 'deposit', 'create' => '1']); - $this->assertResponseStatus(302); - } - - public function testStoreRedirect() - { - $journal = f::create('TransactionJournal'); - - $this->_repository->shouldReceive('store')->andReturn($journal); - - $this->action('POST', 'TransactionController@store', ['what' => 'deposit', 'create' => '1']); - $this->assertResponseStatus(302); - } - - public function testUpdate() - { - $journal = f::create('TransactionJournal'); - - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($journal->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $this->_repository->shouldReceive('update')->andReturn($journal); - - $this->action('POST', 'TransactionController@update', $journal->id); - $this->assertResponseStatus(302); - } - - public function testUpdateFailed() - { - $journal = f::create('TransactionJournal'); - - - // for binding - Auth::shouldReceive('user')->andReturn($this->_user); - Auth::shouldReceive('check')->andReturn(true); - $this->_user->shouldReceive('getAttribute')->with('id')->once()->andReturn($journal->user_id); - $this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email'); - - $journal->description = null; - - $this->_repository->shouldReceive('update')->andReturn($journal); - - $this->action('POST', 'TransactionController@update', $journal->id); - $this->assertResponseStatus(302); - } -} \ No newline at end of file diff --git a/app/tests/controllers/UserControllerTest.php b/app/tests/controllers/UserControllerTest.php deleted file mode 100644 index d3f3a209b6..0000000000 --- a/app/tests/controllers/UserControllerTest.php +++ /dev/null @@ -1,167 +0,0 @@ -_user = m::mock('User', 'Eloquent'); - $this->_users = $this->mock('Firefly\Storage\User\UserRepositoryInterface'); - $this->_email = $this->mock('Firefly\Helper\Email\EmailHelperInterface'); - - } - - public function tearDown() - { - m::close(); - } - - public function testLogin() - { - $this->action('GET', 'UserController@login'); - $this->assertResponseOk(); - } - - public function testLogout() - { - $this->action('GET', 'UserController@logout'); - $this->assertResponseStatus(302); - } - - public function testPostLogin() - { - $input = [ - 'email' => 'bla@bla', - 'password' => 'something', - ]; - - Auth::shouldReceive('attempt')->with($input, false)->andReturn(true); - - $this->action('POST', 'UserController@postLogin', $input); - $this->assertResponseStatus(302); - } - - public function testPostLoginFails() - { - - $this->action('POST', 'UserController@postLogin'); - $this->assertResponseOk(); - } - - public function testPostRegister() - { - Config::set('auth.allow_register', true); - $user = f::create('User'); - $this->_users->shouldReceive('register')->andReturn($user); - $this->_email->shouldReceive('sendPasswordMail')->with($user); - $this->action('POST', 'UserController@postRegister'); - $this->assertResponseOk(); - } - - public function testPostRegisterFails() - { - Config::set('auth.allow_register', true); - $this->_users->shouldReceive('register')->andReturn(false); - $this->action('POST', 'UserController@postRegister'); - $this->assertResponseOk(); - } - - public function testPostRegisterNotAllowed() - { - Config::set('auth.allow_register', false); - $this->action('POST', 'UserController@postRegister'); - $this->assertResponseOk(); - } - - public function testPostRegisterVerify() - { - Config::set('auth.allow_register', true); - Config::set('auth.verify_mail', true); - $user = f::create('User'); - $this->_users->shouldReceive('register')->andReturn($user); - $this->_email->shouldReceive('sendVerificationMail')->with($user); - $this->action('POST', 'UserController@postRegister'); - $this->assertResponseOk(); - } - - public function testPostRemindme() - { - $user = f::create('User'); - Config::set('auth.verify_reset', true); - $this->_users->shouldReceive('findByEmail')->andReturn($user); - $this->_email->shouldReceive('sendResetVerification'); - $this->action('POST', 'UserController@postRemindme'); - $this->assertResponseOk(); - } - - public function testPostRemindmeNoVerify() - { - $user = f::create('User'); - Config::set('auth.verify_reset', false); - $this->_users->shouldReceive('findByEmail')->andReturn($user); - $this->_email->shouldReceive('sendPasswordMail'); - $this->action('POST', 'UserController@postRemindme'); - $this->assertResponseOk(); - } - - public function testPostRemindmeFails() - { - Config::set('auth.verify_reset', true); - $this->_users->shouldReceive('findByEmail')->andReturn(false); - $this->action('POST', 'UserController@postRemindme'); - $this->assertResponseOk(); - } - - public function testRegister() - { - $this->action('GET', 'UserController@register'); - $this->assertResponseOk(); - } - - public function testRegisterNotAllowed() - { - Config::set('auth.allow_register', false); - $this->action('GET', 'UserController@register'); - $this->assertResponseOk(); - } - - public function testRemindme() - { - $this->action('GET', 'UserController@remindme'); - $this->assertResponseOk(); - } - - public function testReset() - { - $user = f::create('User'); - - $this->_users->shouldReceive('findByReset')->andReturn($user); - $this->_email->shouldReceive('sendPasswordMail'); - $this->action('GET', 'UserController@reset'); - $this->assertResponseOk(); - } - - public function testResetNoUser() - { - $this->_users->shouldReceive('findByReset')->andReturn(false); - $this->action('GET', 'UserController@reset'); - $this->assertResponseOk(); - } -} \ No newline at end of file diff --git a/app/tests/factories/Account.php b/app/tests/factories/Account.php deleted file mode 100644 index 289478ddd1..0000000000 --- a/app/tests/factories/Account.php +++ /dev/null @@ -1,12 +0,0 @@ - 'factory|User', - 'account_type_id' => 'factory|AccountType', - 'name' => 'word', - 'active' => 'boolean' - ] -); \ No newline at end of file diff --git a/app/tests/factories/AccountType.php b/app/tests/factories/AccountType.php deleted file mode 100644 index d361058bcb..0000000000 --- a/app/tests/factories/AccountType.php +++ /dev/null @@ -1,10 +0,0 @@ - 'unique:word', - 'editable' => 1 - ] -); \ No newline at end of file diff --git a/app/tests/factories/Budget.php b/app/tests/factories/Budget.php deleted file mode 100644 index a7b68c6ed3..0000000000 --- a/app/tests/factories/Budget.php +++ /dev/null @@ -1,11 +0,0 @@ - 'word', - 'user_id' => 'factory|User', - 'class' => 'Budget' - ] -); \ No newline at end of file diff --git a/app/tests/factories/Category.php b/app/tests/factories/Category.php deleted file mode 100644 index 559f27a85e..0000000000 --- a/app/tests/factories/Category.php +++ /dev/null @@ -1,11 +0,0 @@ - 'word', - 'user_id' => 'factory|User', - 'class' => 'Category' - ] -); \ No newline at end of file diff --git a/app/tests/factories/Component.php b/app/tests/factories/Component.php deleted file mode 100644 index 69119ccf33..0000000000 --- a/app/tests/factories/Component.php +++ /dev/null @@ -1,11 +0,0 @@ - 'word', - 'user_id' => 'factory|User', - 'class' => 'Component' - ] -); \ No newline at end of file diff --git a/app/tests/factories/Limit.php b/app/tests/factories/Limit.php deleted file mode 100644 index 0add2057c8..0000000000 --- a/app/tests/factories/Limit.php +++ /dev/null @@ -1,26 +0,0 @@ - 'factory|Budget', - 'startdate' => function () { - $start = new Carbon; - $start->startOfMonth(); - - return $start; - }, - 'amount' => 100, - 'repeats' => 'boolean', - 'repeat_freq' => function () { - $frequencies = ['daily', 'weekly', 'monthly', 'quarterly', 'half-year', 'yearly']; - - return $frequencies[rand(0, 5)]; - } - - - ] -); \ No newline at end of file diff --git a/app/tests/factories/LimitRepetition.php b/app/tests/factories/LimitRepetition.php deleted file mode 100644 index 3ff9e40824..0000000000 --- a/app/tests/factories/LimitRepetition.php +++ /dev/null @@ -1,28 +0,0 @@ - 'factory|Limit', - 'startdate' => function () { - $start = new Carbon; - $start->startOfMonth(); - - return $start; - - }, - 'enddate' => function () { - $end = new Carbon; - $end->endOfMonth(); - - return $end; - - }, - 'amount' => 100 - - - ] -); \ No newline at end of file diff --git a/app/tests/factories/Piggybank.php b/app/tests/factories/Piggybank.php deleted file mode 100644 index 8867b2db93..0000000000 --- a/app/tests/factories/Piggybank.php +++ /dev/null @@ -1,32 +0,0 @@ - 'factory|Account', - 'name' => 'word', - 'targetamount' => 'integer', - 'startdate' => function () { - $start = new Carbon; - $start->startOfMonth(); - - return $start; - }, - 'targetdate' => function () { - $end = new Carbon; - $end->endOfMonth(); - - return $end; - }, - 'repeats' => 0, - 'rep_length' => null, - 'rep_times' => 0, - 'rep_every' => 0, - 'reminder' => null, - 'reminder_skip' => 0, - 'order' => 1, - ] -); \ No newline at end of file diff --git a/app/tests/factories/PiggybankEvent.php b/app/tests/factories/PiggybankEvent.php deleted file mode 100644 index f620b7bfb1..0000000000 --- a/app/tests/factories/PiggybankEvent.php +++ /dev/null @@ -1,14 +0,0 @@ - 'factory|Piggybank', - 'date' => new Carbon, - 'amount' => 10 - - ] -); \ No newline at end of file diff --git a/app/tests/factories/PiggybankRepetition.php b/app/tests/factories/PiggybankRepetition.php deleted file mode 100644 index 9fcef23652..0000000000 --- a/app/tests/factories/PiggybankRepetition.php +++ /dev/null @@ -1,25 +0,0 @@ - 'factory|Piggybank', - 'startdate' => function () { - $start = new Carbon; - $start->startOfMonth(); - - return $start; - }, - 'targetdate' => function () { - $end = new Carbon; - $end->endOfMonth(); - - return $end; - }, - 'currentamount' => 200 - ] -); \ No newline at end of file diff --git a/app/tests/factories/Preference.php b/app/tests/factories/Preference.php deleted file mode 100644 index 84b77f1ded..0000000000 --- a/app/tests/factories/Preference.php +++ /dev/null @@ -1,12 +0,0 @@ - 'factory|User', - 'name' => 'word', - 'data' => 'word' - ] -); \ No newline at end of file diff --git a/app/tests/factories/RecurringTransaction.php b/app/tests/factories/RecurringTransaction.php deleted file mode 100644 index f334ab43d1..0000000000 --- a/app/tests/factories/RecurringTransaction.php +++ /dev/null @@ -1,23 +0,0 @@ - 'factory|User', - 'name' => 'string', - 'match' => 'string', - 'amount_max' => 100, - 'amount_min' => 50, - 'date' => new Carbon, - 'active' => 'boolean', - 'automatch' => 'boolean', - 'repeat_freq' => 'monthly', - 'skip' => 'boolean', - - ] -); \ No newline at end of file diff --git a/app/tests/factories/Transaction.php b/app/tests/factories/Transaction.php deleted file mode 100644 index 7401368d06..0000000000 --- a/app/tests/factories/Transaction.php +++ /dev/null @@ -1,15 +0,0 @@ - 'factory|Account', - 'piggybank_id' => null, - 'transaction_journal_id' => 'factory|TransactionJournal', - 'description' => 'string', - 'amount' => 'integer:5', - ] -); \ No newline at end of file diff --git a/app/tests/factories/TransactionCurrency.php b/app/tests/factories/TransactionCurrency.php deleted file mode 100644 index 9b8a785d86..0000000000 --- a/app/tests/factories/TransactionCurrency.php +++ /dev/null @@ -1,11 +0,0 @@ - 'EUR' - ] -); \ No newline at end of file diff --git a/app/tests/factories/TransactionJournal.php b/app/tests/factories/TransactionJournal.php deleted file mode 100644 index e952c8d747..0000000000 --- a/app/tests/factories/TransactionJournal.php +++ /dev/null @@ -1,17 +0,0 @@ - 'factory|TransactionType', - 'transaction_currency_id' => 'factory|TransactionCurrency', - 'description' => 'word', - 'completed' => 'boolean', - 'user_id' => 'factory|User', - 'date' => new Carbon - ] -); \ No newline at end of file diff --git a/app/tests/factories/TransactionType.php b/app/tests/factories/TransactionType.php deleted file mode 100644 index 5f3c6032aa..0000000000 --- a/app/tests/factories/TransactionType.php +++ /dev/null @@ -1,15 +0,0 @@ - function () { - $types = ['Withdrawal', 'Deposit', 'Transfer', 'Opening balance']; - - return $types[rand(0, 3)]; - } - ] -); \ No newline at end of file diff --git a/app/tests/factories/User.php b/app/tests/factories/User.php deleted file mode 100644 index 1649da1e1f..0000000000 --- a/app/tests/factories/User.php +++ /dev/null @@ -1,17 +0,0 @@ - 'safeEmail', - 'password' => function () { - return \Str::random(60); - }, - 'reset' => function () { - return \Str::random(32); - }, - 'remember_token' => null, - 'migrated' => 'boolean' - ] -); \ No newline at end of file diff --git a/app/tests/models/ModelTest.php b/app/tests/models/ModelTest.php deleted file mode 100644 index ef7e4b44a8..0000000000 --- a/app/tests/models/ModelTest.php +++ /dev/null @@ -1,417 +0,0 @@ -user()->associate($user); - $account->accounttype()->associate($type); - $account->piggybanks()->save($piggybank); - - - $this->assertEquals($account->predict(new Carbon), null); - $this->assertEquals($account->balance(new Carbon), null); - $this->assertEquals($account->user_id, $user->id); - $this->assertEquals($piggybank->account_id, $account->id); - $this->assertEquals($account->account_type_id, $type->id); - - } - - public function testAccountType() - { - $account = f::create('Account'); - $type = f::create('AccountType'); - $type->accounts()->save($account); - - $this->assertEquals($account->account_type_id, $type->id); - } - - public function testBudget() - { - $budget = f::create('Budget'); - $limit = f::create('Limit'); - $journal = f::create('TransactionJournal'); - $budget->limits()->save($limit); - $budget->transactionjournals()->save($journal); - - $this->assertEquals($limit->component_id, $budget->id); - $this->assertEquals($journal->budgets()->first()->id, $budget->id); - } - - public function testCategory() - { - $category = f::create('Category'); - $journal = f::create('TransactionJournal'); - $category->transactionjournals()->save($journal); - - $this->assertEquals($journal->categories()->first()->id, $category->id); - } - - public function testComponent() - { - $component = f::create('Component'); - $limit = f::create('Limit'); - $component->limits()->save($limit); - $component->save(); - - $transaction = f::create('Transaction'); - $journal = f::create('TransactionJournal'); - $user = f::create('User'); - - - $component->transactions()->save($transaction); - $component->transactionjournals()->save($journal); - $component->user()->associate($user); - - $this->assertEquals($transaction->components()->first()->id, $component->id); - $this->assertEquals($journal->components()->first()->id, $component->id); - $this->assertEquals($limit->component()->first()->id, $component->id); - $this->assertEquals($component->user_id, $user->id); - - } - - public function testLimit() - { - $limit = f::create('Limit'); - $budget = f::create('Budget'); - $rep = f::create('LimitRepetition'); - $limit->budget()->associate($budget); - $limit->limitrepetitions()->save($rep); - $rep->save(); - $limit->save(); - - $this->assertEquals($rep->limit_id, $limit->id); - $this->assertEquals($limit->component_id, $budget->id); - - // create repetition: - $start = new Carbon; - $list = ['daily', 'weekly', 'monthly', 'quarterly', 'half-year', 'yearly']; - foreach ($list as $entry) { - $limit->repeat_freq = $entry; - $limit->createRepetition($start); - } - - } - -// /** -// * @expectedException \Firefly\Exception\FireflyException -// */ -// public function testLimitrepetition() -// { -// $limit = f::create('Limit'); -// $rep = f::create('LimitRepetition'); -// $budget = f::create('Budget'); -// $journal = f::create('TransactionJournal'); -// $one = f::create('Transaction'); -// $two = f::create('Transaction'); -// $one->amount = 300; -// $two->amount = -300; -// -// $rep->limit()->associate($limit); -// $limit->budget()->associate($budget); -// $journal->transactions()->save($one); -// $journal->transactions()->save($two); -// $journal->budgets()->save($budget); -// -// $this->assertEquals(($rep->amount - 300), $rep->left()); -// -// // repeat frequency (not present) for periodOrder -// $testDate = new Carbon; -// $testDate->startOfMonth(); -// $rep->repeat_freq = null; -// -// // this test will FAIL because nowadays the $rep has a random thing. -// // TODO -// -// -// //$this->assertEquals($testDate->format('Ymd') . '-3', $rep->periodOrder()); -// -// // repeat frequency (present) for periodOrder -// $list = ['yearly', 'half-year', 'quarterly', 'monthly', 'weekly', 'daily']; -// foreach ($list as $index => $entry) { -// $rep->repeat_freq = $entry; -// $this->assertEquals($testDate->format('Ymd') . '-' . $index, $rep->periodOrder()); -// } -// -// // repeat freq (invalid) for periodOrder -// $rep->repeat_freq = 'bad'; -// $rep->periodOrder(); -// -// } - - /** - * @expectedException \Firefly\Exception\FireflyException - */ - public function testLimitrepetitionContinued() - { - $limit = f::create('Limit'); - $rep = f::create('LimitRepetition'); - $budget = f::create('Budget'); - $journal = f::create('TransactionJournal'); - $one = f::create('Transaction'); - $two = f::create('Transaction'); - $one->amount = 300; - $two->amount = -300; - - $rep->limit()->associate($limit); - $limit->budget()->associate($budget); - $journal->transactions()->save($one); - $journal->transactions()->save($two); - $journal->budgets()->save($budget); - - // repeat frequency (not present) for periodShow - $testDate = new Carbon; - $testDate->startOfMonth(); - $rep->repeat_freq = null; - // TODO cannot test this with the new factories. -// $this->assertEquals($testDate->format('F Y'), $rep->periodShow()); - - // repeat frequency (present) for periodOrder - $list = ['yearly', 'half-year', 'quarterly', 'monthly', 'weekly', 'daily']; - foreach ($list as $entry) { - $rep->repeat_freq = $entry; - $this->assertGreaterThan(0, strlen($rep->periodShow())); - } - - // repeat freq (invalid) for periodOrder - $rep->repeat_freq = 'bad'; - $rep->periodShow(); - } - - public function testPiggybank() - { - $piggy = f::create('Piggybank'); - $account = f::create('Account'); - $piggy->account()->associate($account); - $this->assertEquals($account->id, $piggy->account_id); - - $repetition = f::create('PiggybankRepetition'); - $repetition->piggybank()->associate($piggy); - $repetition->save(); - $list = ['day', 'week', 'month', 'year']; - - // with a start date, so next reminder is built from a loop: - foreach ($list as $reminder) { - $piggy->reminder = $reminder; - $repetition->save(); - $piggy->nextReminderDate(); - } - // set the reminder period to be invalid, should return NULL - $piggy->reminder = 'invalid'; - $piggy->save(); - $this->assertNull($piggy->nextReminderDate()); - - // set the start date to zero, give a valid $reminder, retry: - $repetition->startdate = null; - $piggy->reminder = 'month'; - $repetition->save(); - foreach ($list as $reminder) { - $piggy->reminder = $reminder; - $repetition->save(); - $piggy->nextReminderDate(); - } - // set the reminder to be invalid again: - $piggy->reminder = 'invalid'; - $piggy->save(); - $piggy->nextReminderDate(); - - // set it to be NULL - $piggy->reminder = null; - $piggy->save(); - $piggy->nextReminderDate(); - - - // remove the repetition, retry: - $piggy->reminder = 'month'; - $piggy->save(); - $repetition->delete(); - $piggy->nextReminderDate(); - - $event = f::create('PiggybankEvent'); - $event->piggybank()->associate($piggy); - $event->save(); - $this->assertEquals($piggy->piggybankevents()->first()->id, $event->id); - - $this->assertNull($piggy->repetitionForDate(new Carbon('2012-02-02'))); - - $transaction = f::create('Transaction'); - $transaction->piggybank()->associate($piggy); - $transaction->save(); - $this->assertEquals($transaction->piggybank_id, $piggy->id); - $this->assertEquals($piggy->transactions()->first()->id, $transaction->id); - - $repetition->pct(); - - - } - - public function testPreference() - { - $pref = f::create('Preference'); - $user = f::create('User'); - $pref->user()->associate($user); - $this->assertEquals($pref->user_id, $user->id); - $pref->data = 'Hello'; - $this->assertEquals($pref->data, 'Hello'); - } - - public function testRecurringtransaction() - { - $rec = f::create('RecurringTransaction'); - $user = f::create('User'); - $rec->user()->associate($user); - $this->assertEquals($rec->user_id, $user->id); - - $list = ['yearly', 'half-year', 'quarterly', 'monthly', 'weekly', 'daily']; - foreach ($list as $entry) { - $start = clone $rec->date; - $rec->repeat_freq = $entry; - $end = $rec->next(); - $this->assertTrue($end > $start); - } - } - - public function testTransaction() - { - $transaction = f::create('Transaction'); - $journal = f::create('TransactionJournal'); - $component = f::create('Component'); - $budget = f::create('Budget'); - $category = f::create('Category'); - $account = f::create('Account'); - $piggy = f::create('Piggybank'); - - $transaction->transactionJournal()->associate($journal); - $this->assertEquals($transaction->transaction_journal_id, $journal->id); - $transaction->components()->save($component); - $this->assertEquals($transaction->components()->first()->id, $component->id); - $transaction->budgets()->save($budget); - $this->assertEquals($transaction->budgets()->first()->id, $budget->id); - $transaction->categories()->save($category); - $this->assertEquals($transaction->categories()->first()->id, $category->id); - $transaction->account()->associate($account); - $this->assertEquals($transaction->account_id, $account->id); - $transaction->piggybank()->associate($piggy); - $this->assertEquals($transaction->piggybank_id, $piggy->id); - } - - public function testTransactionCurrency() - { - $cur = f::create('TransactionCurrency'); - $journal = f::create('TransactionJournal'); - $cur->transactionjournals()->save($journal); - $journal->save(); - $cur->save(); - $this->assertEquals($cur->id, $journal->transaction_currency_id); - } - - public function testTransactionJournal() - { - $journal = f::create('TransactionJournal'); - $type = f::create('TransactionType'); - $user = f::create('User'); - $cur = f::create('TransactionCurrency'); - $transaction = f::create('Transaction'); - $component = f::create('Component'); - $budget = f::create('Budget'); - $category = f::create('Category'); - - $journal->transactionType()->associate($type); - $this->assertEquals($type->id, $journal->transaction_type_id); - - $journal->user()->associate($user); - $this->assertEquals($user->id, $journal->user_id); - - $journal->transactionCurrency()->associate($cur); - $this->assertEquals($cur->id, $journal->transaction_currency_id); - - $journal->transactions()->save($transaction); - $this->assertEquals($journal->transactions()->first()->id, $transaction->id); - - $journal->components()->save($component); - $this->assertEquals($journal->components()->first()->id, $component->id); - - $journal->budgets()->save($budget); - $this->assertEquals($journal->budgets()->first()->id, $budget->id); - - $journal->categories()->save($category); - $this->assertEquals($journal->categories()->first()->id, $category->id); - } - - public function testTransactionType() - { - $journal = f::create('TransactionJournal'); - $type = f::create('TransactionType'); - - $type->transactionjournals()->save($journal); - $this->assertEquals($type->transactionJournals()->first()->id, $journal->id); - - } - - public function testUser() - { - $user = f::create('User'); - - $account = f::create('Account'); - $bud = f::create('Budget'); - $cat = f::create('Category'); - $comp = f::create('Component'); - $pref = f::create('Preference'); - $rec = f::create('RecurringTransaction'); - $journal = f::create('TransactionJournal'); - $piggy = f::create('Piggybank'); - - $user->accounts()->save($account); - $this->assertEquals($account->id, $user->accounts()->first()->id); - - $user->components()->save($comp); - $this->assertEquals($comp->id, $user->components()->first()->id); - - $user->budgets()->save($bud); - $this->assertEquals($bud->id, $user->budgets()->first()->id); - - $user->categories()->save($cat); - $this->assertEquals($cat->id, $user->categories()->first()->id); - - $user->preferences()->save($pref); - $this->assertEquals($pref->id, $user->preferences()->first()->id); - - $user->recurringtransactions()->save($rec); - $this->assertEquals($rec->id, $user->recurringtransactions()->first()->id); - - $user->transactionjournals()->save($journal); - $this->assertEquals($journal->id, $user->transactionjournals()->first()->id); - - $piggy->account()->associate($account); - $piggy->save(); - $this->assertCount(1, $user->piggybanks()->get()); - } - - -} \ No newline at end of file