From 58af3dc6eaa971c97a5c48051c09b4431224d286 Mon Sep 17 00:00:00 2001 From: James Cole Date: Thu, 2 Jul 2015 08:51:53 +0200 Subject: [PATCH] Removed everything related to unit tests. Can restore later. --- phpunit.xml | 35 - pu.sh | 40 - tests/TestCase.php | 111 --- tests/controllers/AccountControllerTest.php | 353 ------- tests/controllers/AuthControllerTest.php | 78 -- tests/controllers/BillControllerTest.php | 273 ------ tests/controllers/BudgetControllerTest.php | 435 --------- tests/controllers/CategoryControllerTest.php | 263 ------ tests/controllers/CurrencyControllerTest.php | 279 ------ tests/controllers/HelpControllerTest.php | 104 -- tests/controllers/HomeControllerTest.php | 159 ---- tests/controllers/JsonControllerTest.php | 228 ----- tests/controllers/NewUserControllerTest.php | 110 --- tests/controllers/PiggyBankControllerTest.php | 454 --------- .../controllers/PreferencesControllerTest.php | 121 --- tests/controllers/ProfileControllerTest.php | 195 ---- tests/controllers/ReportControllerTest.php | 172 ---- tests/controllers/SearchControllerTest.php | 58 -- tests/controllers/TagControllerTest.php | 296 ------ .../controllers/TransactionControllerTest.php | 598 ------------ .../charts/ChartAccountControllerTest.php | 134 --- .../charts/ChartBillControllerTest.php | 100 -- .../charts/ChartBudgetControllerTest.php | 164 ---- .../charts/ChartCategoryControllerTest.php | 125 --- .../charts/ChartPiggyBankControllerTest.php | 53 -- .../charts/ChartReportControllerTest.php | 77 -- tests/factories/all.php | 321 ------- .../ChartJsAccountChartGeneratorTest.php | 114 --- .../ChartJsBillChartGeneratorTest.php | 100 -- .../ChartJsBudgetChartGeneratorTest.php | 113 --- .../ChartJsCategoryChartGeneratorTest.php | 114 --- .../ChartJsPiggyBankChartGeneratorTest.php | 66 -- .../ChartJsReportChartGeneratorTest.php | 80 -- .../GoogleAccountChartGeneratorTest.php | 120 --- .../GoogleBillChartGeneratorTest.php | 90 -- .../GoogleBudgetChartGeneratorTest.php | 99 -- .../GoogleCategoryChartGeneratorTest.php | 116 --- .../GooglePiggyBankChartGeneratorTest.php | 58 -- .../GoogleReportChartGeneratorTest.php | 69 -- .../helpers/ConnectJournalToPiggyBankTest.php | 139 --- tests/helpers/ReportHelperTest.php | 329 ------- tests/helpers/ReportQueryTest.php | 397 -------- tests/models/AccountModelTest.php | 162 ---- tests/models/CategoryModelTest.php | 76 -- tests/models/TagModelTest.php | 95 -- tests/models/TransactionJournalModelTest.php | 636 ------------- tests/repositories/AccountRepositoryTest.php | 891 ------------------ tests/repositories/BillRepositoryTest.php | 467 --------- tests/repositories/BudgetRepositoryTest.php | 399 -------- tests/repositories/CategoryRepositoryTest.php | 290 ------ tests/repositories/CurrencyRepositoryTest.php | 114 --- tests/repositories/JournalRepositoryTest.php | 572 ----------- .../repositories/PiggyBankRepositoryTest.php | 196 ---- tests/repositories/TagRepositoryBasicTest.php | 182 ---- tests/repositories/TagRepositoryTest.php | 656 ------------- tests/support/AmountSupportTest.php | 300 ------ tests/support/ExpandedFormTest.php | 202 ---- tests/support/NavigationTest.php | 287 ------ 58 files changed, 12865 deletions(-) delete mode 100644 phpunit.xml delete mode 100755 pu.sh delete mode 100644 tests/TestCase.php delete mode 100644 tests/controllers/AccountControllerTest.php delete mode 100644 tests/controllers/AuthControllerTest.php delete mode 100644 tests/controllers/BillControllerTest.php delete mode 100644 tests/controllers/BudgetControllerTest.php delete mode 100644 tests/controllers/CategoryControllerTest.php delete mode 100644 tests/controllers/CurrencyControllerTest.php delete mode 100644 tests/controllers/HelpControllerTest.php delete mode 100644 tests/controllers/HomeControllerTest.php delete mode 100644 tests/controllers/JsonControllerTest.php delete mode 100644 tests/controllers/NewUserControllerTest.php delete mode 100644 tests/controllers/PiggyBankControllerTest.php delete mode 100644 tests/controllers/PreferencesControllerTest.php delete mode 100644 tests/controllers/ProfileControllerTest.php delete mode 100644 tests/controllers/ReportControllerTest.php delete mode 100644 tests/controllers/SearchControllerTest.php delete mode 100644 tests/controllers/TagControllerTest.php delete mode 100644 tests/controllers/TransactionControllerTest.php delete mode 100644 tests/controllers/charts/ChartAccountControllerTest.php delete mode 100644 tests/controllers/charts/ChartBillControllerTest.php delete mode 100644 tests/controllers/charts/ChartBudgetControllerTest.php delete mode 100644 tests/controllers/charts/ChartCategoryControllerTest.php delete mode 100644 tests/controllers/charts/ChartPiggyBankControllerTest.php delete mode 100644 tests/controllers/charts/ChartReportControllerTest.php delete mode 100644 tests/factories/all.php delete mode 100644 tests/generators/ChartJsAccountChartGeneratorTest.php delete mode 100644 tests/generators/ChartJsBillChartGeneratorTest.php delete mode 100644 tests/generators/ChartJsBudgetChartGeneratorTest.php delete mode 100644 tests/generators/ChartJsCategoryChartGeneratorTest.php delete mode 100644 tests/generators/ChartJsPiggyBankChartGeneratorTest.php delete mode 100644 tests/generators/ChartJsReportChartGeneratorTest.php delete mode 100644 tests/generators/GoogleAccountChartGeneratorTest.php delete mode 100644 tests/generators/GoogleBillChartGeneratorTest.php delete mode 100644 tests/generators/GoogleBudgetChartGeneratorTest.php delete mode 100644 tests/generators/GoogleCategoryChartGeneratorTest.php delete mode 100644 tests/generators/GooglePiggyBankChartGeneratorTest.php delete mode 100644 tests/generators/GoogleReportChartGeneratorTest.php delete mode 100644 tests/helpers/ConnectJournalToPiggyBankTest.php delete mode 100644 tests/helpers/ReportHelperTest.php delete mode 100644 tests/helpers/ReportQueryTest.php delete mode 100644 tests/models/AccountModelTest.php delete mode 100644 tests/models/CategoryModelTest.php delete mode 100644 tests/models/TagModelTest.php delete mode 100644 tests/models/TransactionJournalModelTest.php delete mode 100644 tests/repositories/AccountRepositoryTest.php delete mode 100644 tests/repositories/BillRepositoryTest.php delete mode 100644 tests/repositories/BudgetRepositoryTest.php delete mode 100644 tests/repositories/CategoryRepositoryTest.php delete mode 100644 tests/repositories/CurrencyRepositoryTest.php delete mode 100644 tests/repositories/JournalRepositoryTest.php delete mode 100644 tests/repositories/PiggyBankRepositoryTest.php delete mode 100644 tests/repositories/TagRepositoryBasicTest.php delete mode 100644 tests/repositories/TagRepositoryTest.php delete mode 100644 tests/support/AmountSupportTest.php delete mode 100644 tests/support/ExpandedFormTest.php delete mode 100644 tests/support/NavigationTest.php diff --git a/phpunit.xml b/phpunit.xml deleted file mode 100644 index 6b3ab70282..0000000000 --- a/phpunit.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - ./tests - - - - - ./app - - - - - - - - - - - - diff --git a/pu.sh b/pu.sh deleted file mode 100755 index 5daa2f6f0d..0000000000 --- a/pu.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -# set testing environment -cp .env.testing .env - -# test! -if [ -z "$1" ] -then - phpunit --verbose -fi - -# directories to look in: -dirs=("controllers" "database" "factories" "generators" "helpers" "models" "middleware" "repositories" "support") - -if [ ! -z "$1" ] -then - for i in "${dirs[@]}" - do - firstFile="./tests/$i/$1.php" - secondFile="./tests/$i/$1Test.php" - if [ -f "$firstFile" ] - then - # run it! - phpunit --verbose $firstFile - exit $? - fi - if [ -f "$secondFile" ] - then - # run it! - phpunit --verbose $secondFile - exit $? - fi - - - done - -fi - -# restore .env file -cp .env.local .env diff --git a/tests/TestCase.php b/tests/TestCase.php deleted file mode 100644 index 8b972b79d0..0000000000 --- a/tests/TestCase.php +++ /dev/null @@ -1,111 +0,0 @@ -make('Illuminate\Contracts\Console\Kernel')->bootstrap(); - - return $app; - } - - /** - * Sets up the fixture, for example, opens a network connection. - * This method is called before a test is executed. - */ - public function setUp() - { - parent::setUp(); - - // if the database copy does not exist, call migrate. - $copy = __DIR__ . '/../storage/database/testing-copy.db'; - $original = __DIR__ . '/../storage/database/testing.db'; - - FactoryMuffin::loadFactories(__DIR__ . '/factories'); - - if (!file_exists($copy)) { - touch($original); - Artisan::call('migrate'); - - - // create EUR currency - /** @var TransactionCurrency $currency */ - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $currency->code = 'EUR'; - $currency->save(); - copy($original, $copy); - } else { - - if (file_exists($copy)) { - copy($copy, $original); - } - } - // if the database copy does exists, copy back as original. - - $this->session( - [ - 'start' => Carbon::now()->startOfMonth(), - 'end' => Carbon::now()->endOfMonth(), - 'first' => Carbon::now()->startOfYear() - ] - ); - - - } - - /** - * This method is called before the first test of this test class is run. - * - * @since Method available since Release 3.4.0 - */ - public static function setUpBeforeClass() - { - parent::setUpBeforeClass(); - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - public function tearDown() - { - parent::tearDown(); - - // delete copy original. - //$original = __DIR__.'/../storage/database/testing.db'; - //unlink($original); - - } - - /** - * @param string $class - * - * @return Mockery\MockInterface - */ - public function mock($class) - { - $mock = Mockery::mock($class); - - $this->app->instance($class, $mock); - - return $mock; - } - - -} diff --git a/tests/controllers/AccountControllerTest.php b/tests/controllers/AccountControllerTest.php deleted file mode 100644 index 8e1d1b9b64..0000000000 --- a/tests/controllers/AccountControllerTest.php +++ /dev/null @@ -1,353 +0,0 @@ -createAccount(); - } - - /** - * This method is called before the first test of this test class is run. - * - * @since Method available since Release 3.4.0 - */ - public static function setUpBeforeClass() - { - parent::setUpBeforeClass(); - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - public function tearDown() - { - parent::tearDown(); - - } - - /** - * - */ - public function createAccount() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - if (is_null($this->account)) { - $this->account = FactoryMuffin::create('FireflyIII\Models\Account'); - $this->account->user_id = $user->id; - $this->account->save(); - } - } - - /** - * @covers FireflyIII\Http\Controllers\AccountController::create - */ - public function testCreate() - { - $pref = FactoryMuffin::create('FireflyIII\Models\Preference'); - $pref->data = '1M'; - $this->be($pref->user); - - - Preferences::shouldReceive('get')->withArgs(['viewRange', '1M'])->andReturn($pref); - - - $language = FactoryMuffin::create('FireflyIII\Models\Preference'); - $language->data = 'en'; - Preferences::shouldReceive('get')->withArgs(['language', 'en'])->andReturn($language); - - // CURRENCY: - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - Amount::shouldReceive('getDefaultCurrency')->andReturn($currency); - Amount::shouldReceive('getAllCurrencies')->andReturn([$currency]); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - $lastActivity = FactoryMuffin::create('FireflyIII\Models\Preference'); - $lastActivity->data = microtime(); - Preferences::shouldReceive('lastActivity')->andReturn($lastActivity); - - $this->call('GET', '/accounts/create/asset'); - $this->assertResponseOk(); - - - $this->assertViewHas('subTitle', 'Create a new asset account'); - $this->assertViewHas('subTitleIcon', 'fa-money'); - $this->assertViewHas('what', 'asset'); - - } - - /** - * @covers FireflyIII\Http\Controllers\AccountController::delete - */ - public function testDelete() - { - - $this->be($this->account->user); - $this->call('GET', '/accounts/delete/' . $this->account->id); - $this->assertResponseOk(); - $this->assertViewHas('subTitle', 'Delete ' . strtolower(e($this->account->accountType->type)) . ' "' . e($this->account->name) . '"'); - - } - - /** - * @covers FireflyIII\Http\Controllers\AccountController::destroy - */ - public function testDestroy() - { - // fake an account. - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - - $this->be($account->user); - - // mock: - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $repository->shouldReceive('destroy')->andReturn(true); - - // post it! - $this->call('POST', '/accounts/destroy/' . $account->id, ['_token' => 'replaceme']); - $this->assertSessionHas('success'); - $this->assertResponseStatus(302); - } - - /** - * @covers FireflyIII\Http\Controllers\AccountController::edit - */ - public function testEdit() - { - // fake an account. - - $this->be($this->account->user); - $this->assertCount(1, DB::table('accounts')->where('id', $this->account->id)->whereNull('deleted_at')->get()); - - // create a transaction journal that will act as opening balance: - $openingBalance = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $repository->shouldReceive('openingBalanceTransaction')->andReturn($openingBalance); - - // create a transaction that will be returned for the opening balance transaction: - $opening = FactoryMuffin::create('FireflyIII\Models\Transaction'); - $repository->shouldReceive('getFirstTransaction')->andReturn($opening); - - // CURRENCY: - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - Amount::shouldReceive('getDefaultCurrency')->andReturn($currency); - Amount::shouldReceive('getAllCurrencies')->andReturn([$currency]); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - // get edit page: - $this->call('GET', '/accounts/edit/' . $this->account->id); - - // assert stuff: - $this->assertResponseOk(); - $this->assertSessionHas('preFilled'); - $this->assertViewHas('subTitle', 'Edit ' . strtolower(e($this->account->accountType->type)) . ' "' . e($this->account->name) . '"'); - - - } - - /** - * @covers FireflyIII\Http\Controllers\AccountController::index - */ - public function testIndex() - { - // an account: - $this->be($this->account->user); - - $collection = new Collection; - $collection->push($this->account); - - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $repository->shouldReceive('getAccounts')->andReturn($collection); - $repository->shouldReceive('countAccounts')->andReturn(1); - $repository->shouldReceive('getLastActivity')->andReturn(null); - - Amount::shouldReceive('format')->andReturn(''); - Amount::shouldReceive('getCurrencyCode')->andReturn('A'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - - // put stuff in session: - $this->session(['start' => new Carbon, 'end' => new Carbon]); - - // get edit page: - $this->call('GET', '/accounts/asset'); - $this->assertResponseOk(); - $this->assertViewHas('what', 'asset'); - - } - - /** - * @covers FireflyIII\Http\Controllers\AccountController::show - */ - public function testShow() - { - // an account: - $this->be($this->account->user); - - // mock! - Amount::shouldReceive('getCurrencyCode')->andReturn('A'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $repository->shouldReceive('getJournals')->andReturn(new LengthAwarePaginator([], 0, 10)); - - // get edit page: - $this->call('GET', '/accounts/show/' . $this->account->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\AccountController::store - */ - public function testStore() - { - // an account: - $this->be($this->account->user); - - $data = [ - 'name' => 'New test account ' . rand(1, 1000), - 'what' => 'asset', - 'virtualBalance' => 0, - 'accountRole' => 'defaultAsset', - 'openingBalance' => 20, - 'openingBalanceDate' => date('Y-m-d'), - 'openingBalanceCurrency' => 1, - '_token' => 'replaceme' - ]; - - // fake validation routine: - $request = $this->mock('FireflyIII\Http\Requests\AccountFormRequest'); - $request->shouldReceive('input')->andReturn(''); - - // fake store routine: - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $repository->shouldReceive('store')->andReturn($this->account); - - $this->call('POST', '/accounts/store', $data); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - - } - - /** - * @covers FireflyIII\Http\Controllers\AccountController::store - */ - public function testStoreAndRedirect() - { - // an account: - $this->be($this->account->user); - - $data = [ - 'name' => 'New test account ' . rand(1, 1000), - 'what' => 'asset', - 'virtualBalance' => 0, - 'accountRole' => 'defaultAsset', - 'openingBalance' => 20, - 'openingBalanceDate' => date('Y-m-d'), - 'openingBalanceCurrency' => 1, - '_token' => 'replaceme', - 'create_another' => 1, - ]; - - // fake validation routine: - $request = $this->mock('FireflyIII\Http\Requests\AccountFormRequest'); - $request->shouldReceive('input')->andReturn(''); - - // fake store routine: - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $repository->shouldReceive('store')->andReturn($this->account); - - $this->call('POST', '/accounts/store', $data); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - - } - - /** - * @covers FireflyIII\Http\Controllers\AccountController::update - */ - public function testUpdate() - { - - // an account: - $this->be($this->account->user); - - $data = [ - 'name' => 'Edited test account ' . rand(1, 1000), - 'active' => 1, - 'accountRole' => 'defaultAsset', - 'virtualBalance' => 0, - 'openingBalance' => 25, - 'openingBalanceDate' => date('Y-m-d'), - 'openingBalanceCurrency' => 1, - '_token' => 'replaceme' - ]; - - // fake validation routine: - $request = $this->mock('FireflyIII\Http\Requests\AccountFormRequest'); - $request->shouldReceive('input')->andReturn(''); - - // fake update routine: - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $repository->shouldReceive('update')->andReturn($this->account); - - $this->call('POST', '/accounts/update/' . $this->account->id, $data); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - } - - /** - * @covers FireflyIII\Http\Controllers\AccountController::update - */ - public function testUpdateAndRedirect() - { - - // an account: - $this->be($this->account->user); - - $data = [ - 'name' => 'Edited test account ' . rand(1, 1000), - 'active' => 1, - 'accountRole' => 'defaultAsset', - 'virtualBalance' => 0, - 'openingBalance' => 25, - 'openingBalanceDate' => date('Y-m-d'), - 'openingBalanceCurrency' => 1, - '_token' => 'replaceme', - 'return_to_edit' => 1, - ]; - - // fake validation routine: - $request = $this->mock('FireflyIII\Http\Requests\AccountFormRequest'); - $request->shouldReceive('input')->andReturn(''); - - // fake update routine: - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $repository->shouldReceive('update')->andReturn($this->account); - - $this->call('POST', '/accounts/update/' . $this->account->id, $data); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - } - -} diff --git a/tests/controllers/AuthControllerTest.php b/tests/controllers/AuthControllerTest.php deleted file mode 100644 index 2517e19b8c..0000000000 --- a/tests/controllers/AuthControllerTest.php +++ /dev/null @@ -1,78 +0,0 @@ - 'test@example.com', - 'password' => 'onetwothree', - 'password_confirmation' => 'onetwothree', - '_token' => 'replaceMe' - ]; - $this->call('POST', '/auth/register', $data); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - } - - /** - * @covers FireflyIII\Http\Controllers\Auth\AuthController::postRegister - * @covers FireflyIII\Http\Controllers\Auth\AuthController::validator - * @covers FireflyIII\Http\Controllers\Auth\AuthController::create - */ - public function testPostRegisterFails() - { - - $data = [ - 'email' => 'test@example.com', - 'password' => 'onetwothree', - 'password_confirmation' => 'onetwofour', - '_token' => 'replaceMe' - ]; - $this->call('POST', '/auth/register', $data); - $this->assertResponseStatus(302); - - - } - -} diff --git a/tests/controllers/BillControllerTest.php b/tests/controllers/BillControllerTest.php deleted file mode 100644 index 3fc9e690b2..0000000000 --- a/tests/controllers/BillControllerTest.php +++ /dev/null @@ -1,273 +0,0 @@ -be($bill->user); - - // CURRENCY: - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - Amount::shouldReceive('getDefaultCurrency')->andReturn($currency); - Amount::shouldReceive('getAllCurrencies')->andReturn([$currency]); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - $this->call('GET', '/bills/create'); - $this->assertViewHas('subTitle', 'Create new bill'); - $this->assertResponseOk(); - - } - - /** - * @covers FireflyIII\Http\Controllers\BillController::delete - */ - public function testDelete() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $this->be($bill->user); - $this->call('GET', '/bills/delete/' . $bill->id); - $this->assertViewHas('subTitle', 'Delete bill "' . e($bill->name) . '"'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\BillController::destroy - */ - public function testDestroy() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $this->be($bill->user); - - $repository = $this->mock('FireflyIII\Repositories\Bill\BillRepositoryInterface'); - $repository->shouldReceive('destroy')->andReturn(true); - - - $this->call('POST', '/bills/destroy/' . $bill->id, ['_token' => 'replaceMe']); - $this->assertSessionHas('success', 'The bill was deleted.'); - $this->assertResponseStatus(302); - } - - /** - * @covers FireflyIII\Http\Controllers\BillController::edit - */ - public function testEdit() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $this->be($bill->user); - - // CURRENCY: - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - Amount::shouldReceive('getDefaultCurrency')->andReturn($currency); - Amount::shouldReceive('getAllCurrencies')->andReturn([$currency]); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - $this->call('GET', '/bills/edit/' . $bill->id); - $this->assertViewHas('subTitle', 'Edit bill "' . e($bill->name) . '"'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\BillController::index - */ - public function testIndex() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $this->be($bill->user); - - $collection = new Collection; - $collection->push($bill); - - Amount::shouldReceive('format')->andReturn('XX'); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - $repository = $this->mock('FireflyIII\Repositories\Bill\BillRepositoryInterface'); - $repository->shouldReceive('getBills')->once()->andReturn($collection); - $repository->shouldReceive('nextExpectedMatch')->with($bill)->andReturn(new Carbon); - $repository->shouldReceive('lastFoundMatch')->with($bill)->andReturn(new Carbon); - - $this->call('GET', '/bills'); - $this->assertResponseOk(); - - } - - /** - * @covers FireflyIII\Http\Controllers\BillController::rescan - */ - public function testRescan() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $collection = new Collection; - $this->be($bill->user); - $collection->push($journal); - - $repository = $this->mock('FireflyIII\Repositories\Bill\BillRepositoryInterface'); - $repository->shouldReceive('getPossiblyRelatedJournals')->once()->andReturn($collection); - $repository->shouldReceive('scan'); - - $this->call('GET', '/bills/rescan/' . $bill->id); - $this->assertResponseStatus(302); - $this->assertSessionHas('success', 'Rescanned everything.'); - - - } - - /** - * @covers FireflyIII\Http\Controllers\BillController::rescan - */ - public function testRescanInactive() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $bill->active = 0; - $bill->save(); - $this->be($bill->user); - - $this->call('GET', '/bills/rescan/' . $bill->id); - $this->assertResponseStatus(302); - $this->assertSessionHas('warning', 'Inactive bills cannot be scanned.'); - - } - - /** - * @covers FireflyIII\Http\Controllers\BillController::show - */ - public function testShow() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $collection = new Collection; - - $bill->save(); - $this->be($bill->user); - $collection->push($journal); - - - $repository = $this->mock('FireflyIII\Repositories\Bill\BillRepositoryInterface'); - $repository->shouldReceive('getJournals')->once()->andReturn($collection); - $repository->shouldReceive('nextExpectedMatch')->once()->andReturn(new Carbon); - - Amount::shouldReceive('format')->andReturn('XX'); - Amount::shouldReceive('formatJournal')->andReturn('XX'); - Amount::shouldReceive('getCurrencyCode')->andReturn('XX'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - - $this->call('GET', '/bills/show/' . $bill->id); - } - - /** - * @covers FireflyIII\Http\Controllers\BillController::store - */ - public function testStore() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $repository = $this->mock('FireflyIII\Repositories\Bill\BillRepositoryInterface'); - $request = $this->mock('FireflyIII\Http\Requests\BillFormRequest'); - - $this->be($bill->user); - $request->shouldReceive('getBillData')->once()->andReturn([]); - $repository->shouldReceive('store')->with([])->andReturn($bill); - - $this->call('POST', '/bills/store', ['_token' => 'replaceMe']); - $this->assertResponseStatus(302); - $this->assertSessionHas('success', 'Bill "' . e($bill->name) . '" stored.'); - } - - /** - * @covers FireflyIII\Http\Controllers\BillController::store - */ - public function testStoreAndRedirect() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $repository = $this->mock('FireflyIII\Repositories\Bill\BillRepositoryInterface'); - $request = $this->mock('FireflyIII\Http\Requests\BillFormRequest'); - - $this->be($bill->user); - $request->shouldReceive('getBillData')->once()->andReturn([]); - $repository->shouldReceive('store')->with([])->andReturn($bill); - - $this->call('POST', '/bills/store', ['_token' => 'replaceMe', 'create_another' => 1]); - $this->assertResponseStatus(302); - $this->assertSessionHas('success', 'Bill "' . e($bill->name) . '" stored.'); - } - - /** - * @covers FireflyIII\Http\Controllers\BillController::update - */ - public function testUpdate() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $repository = $this->mock('FireflyIII\Repositories\Bill\BillRepositoryInterface'); - $request = $this->mock('FireflyIII\Http\Requests\BillFormRequest'); - - $this->be($bill->user); - $request->shouldReceive('getBillData')->once()->andReturn([]); - $repository->shouldReceive('update')->andReturn($bill); - - $this->call('POST', '/bills/update/' . $bill->id, ['_token' => 'replaceMe']); - $this->assertResponseStatus(302); - $this->assertSessionHas('success', 'Bill "' . e($bill->name) . '" updated.'); - } - - /** - * @covers FireflyIII\Http\Controllers\BillController::update - */ - public function testUpdateAndRedirect() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $repository = $this->mock('FireflyIII\Repositories\Bill\BillRepositoryInterface'); - $request = $this->mock('FireflyIII\Http\Requests\BillFormRequest'); - - $this->be($bill->user); - $request->shouldReceive('getBillData')->once()->andReturn([]); - $repository->shouldReceive('update')->andReturn($bill); - - $this->call('POST', '/bills/update/' . $bill->id, ['_token' => 'replaceMe', 'return_to_edit' => 1]); - $this->assertResponseStatus(302); - - } -} diff --git a/tests/controllers/BudgetControllerTest.php b/tests/controllers/BudgetControllerTest.php deleted file mode 100644 index b74bfe6a60..0000000000 --- a/tests/controllers/BudgetControllerTest.php +++ /dev/null @@ -1,435 +0,0 @@ -mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - $limitRepetition = FactoryMuffin::create('FireflyIII\Models\LimitRepetition'); - $budget = $limitRepetition->budgetlimit->budget; - $this->be($budget->user); - $today = new Carbon; - - $this->session(['start' => $today]); - $repository->shouldReceive('updateLimitAmount')->once()->andReturn($limitRepetition); - $this->call('POST', '/budgets/amount/' . $budget->id, ['amount' => 100, '_token' => 'replaceme']); - $this->assertResponseOk(); - - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::amount - */ - public function testAmountZero() - { - $repository = $this->mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - $limitRepetition = FactoryMuffin::create('FireflyIII\Models\LimitRepetition'); - $budget = $limitRepetition->budgetlimit->budget; - $this->be($budget->user); - $today = new Carbon; - - $this->session(['start' => $today]); - $repository->shouldReceive('updateLimitAmount')->once()->andReturn($limitRepetition); - $this->call('POST', '/budgets/amount/' . $budget->id, ['amount' => 0, '_token' => 'replaceme']); - $this->assertResponseOk(); - - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::create - */ - public function testCreate() - { - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $this->be($budget->user); - $this->call('GET', '/budgets/create'); - $this->assertResponseOk(); - $this->assertViewHas('subTitle', 'Create a new budget'); - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::delete - */ - public function testDelete() - { - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $this->be($budget->user); - $this->call('GET', '/budgets/delete/' . $budget->id); - - $this->assertResponseOk(); - $this->assertViewHas('subTitle', 'Delete budget "' . e($budget->name) . '"'); - $this->assertViewHas('budget'); - $this->assertSessionHas('budgets.delete.url'); - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::destroy - */ - public function testDestroy() - { - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $this->be($budget->user); - - $repository = $this->mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - $repository->shouldReceive('destroy')->andReturn(true); - - $this->call('POST', '/budgets/destroy/' . $budget->id, ['_token' => 'replaceme']); - - $this->assertSessionHas('success', 'The budget "' . e($budget->name) . '" was deleted.'); - - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::edit - */ - public function testEdit() - { - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $this->be($budget->user); - - $this->call('GET', '/budgets/edit/' . $budget->id); - - $this->assertResponseOk(); - $this->assertViewHas('subTitle', 'Edit budget "' . e($budget->name) . '"'); - $this->assertViewHas('budget'); - $this->assertSessionHas('budgets.edit.url'); - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::index - */ - public function testIndex() - { - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $this->be($budget->user); - $collection = new Collection; - $collection->push($budget); - $repository = $this->mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - $repetition = FactoryMuffin::create('FireflyIII\Models\LimitRepetition'); - - $repository->shouldReceive('getActiveBudgets')->once()->andReturn($collection); - $repository->shouldReceive('getInactiveBudgets')->once()->andReturn($collection); - $repository->shouldReceive('cleanupBudgets')->once(); - $repository->shouldReceive('spentInPeriodCorrected')->once(); - $repository->shouldReceive('getCurrentRepetition')->once()->andReturn($repetition); - Amount::shouldReceive('getCurrencySymbol')->andReturn('x'); - Amount::shouldReceive('format')->andReturn('x'); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - Amount::shouldReceive('getDefaultCurrency')->andReturn($currency); - $this->call('GET', '/budgets'); - - $this->assertResponseOk(); - $this->assertViewHas('budgets'); - $this->assertViewHas('inactive'); - $this->assertViewHas('inactive'); - - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::noBudget - */ - public function testNoBudget() - { - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $this->be($budget->user); - $repository = $this->mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - $repository->shouldReceive('getWithoutBudget')->andReturn(new Collection); - - $this->call('GET', '/budgets/list/noBudget'); - $this->assertResponseOk(); - $this->assertViewHas('list'); - $this->assertViewHas('subTitle'); - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::postUpdateIncome - */ - public function testPostUpdateIncome() - { - - - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $this->be($budget->user); - $date = Carbon::now()->startOfMonth()->format('FY'); - Preferences::shouldReceive('set')->once()->withArgs(['budgetIncomeTotal' . $date, 1001]); - Preferences::shouldReceive('mark')->once()->andReturn(true); - $lastActivity = FactoryMuffin::create('FireflyIII\Models\Preference'); - $lastActivity->data = microtime(); - Preferences::shouldReceive('lastActivity')->andReturn($lastActivity); - - // language preference: - $language = FactoryMuffin::create('FireflyIII\Models\Preference'); - $language->data = 'en'; - $language->save(); - Preferences::shouldReceive('get')->withAnyArgs()->andReturn($language); - - $this->call('POST', '/budgets/income', ['_token' => 'replaceme', 'amount' => 1001]); - $this->assertResponseStatus(302); - $this->assertRedirectedToRoute('budgets.index'); - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::show - */ - public function testShow() - { - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $repository = $this->mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - $this->be($budget->user); - - $paginator = new LengthAwarePaginator(new Collection, 0, 20, 1); - - Amount::shouldReceive('getCurrencyCode')->andReturn('x'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - Amount::shouldReceive('format')->andReturn('x'); - $repository->shouldReceive('getJournals')->andReturn($paginator); - $repository->shouldReceive('getBudgetLimits')->andReturn(new Collection); - - - $this->call('GET', '/budgets/show/' . $budget->id); - $this->assertResponseOk(); - - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::show - */ - public function testShowInvalidRepetition() - { - - $repetition = FactoryMuffin::create('FireflyIII\Models\LimitRepetition'); - $budget = $repetition->budgetLimit->budget; - $otherBudget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $otherBudget->user_id = $budget->user_id; - $otherBudget->save(); - - $repository = $this->mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - $this->be($otherBudget->user); - - Amount::shouldReceive('getCurrencyCode')->andReturn('x'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - Amount::shouldReceive('format')->andReturn('x'); - $repository->shouldReceive('getJournals')->andReturn(new Collection); - $repository->shouldReceive('getBudgetLimits')->andReturn(new Collection); - - - $this->call('GET', '/budgets/show/' . $otherBudget->id . '/' . $repetition->id); - $this->assertResponseOk(); - $this->assertViewHas('message', 'Invalid selection.'); - - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::show - */ - public function testShowRepetition() - { - $repetition = FactoryMuffin::create('FireflyIII\Models\LimitRepetition'); - $budget = $repetition->budgetLimit->budget; - $repository = $this->mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - $this->be($budget->user); - - $paginator = new LengthAwarePaginator(new Collection, 0, 20, 1); - - Amount::shouldReceive('getCurrencyCode')->andReturn('x'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - Amount::shouldReceive('format')->andReturn('x'); - $repository->shouldReceive('getJournals')->andReturn($paginator); - $repository->shouldReceive('getBudgetLimits')->andReturn(new Collection); - - - $this->call('GET', '/budgets/show/' . $budget->id . '/' . $repetition->id); - $this->assertResponseOk(); - - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::store - */ - public function testStore() - { - // a budget: - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $this->be($budget->user); - - $data = [ - 'name' => 'New test budget ' . rand(1, 1000), - '_token' => 'replaceme' - ]; - - // fake validation routine: - $request = $this->mock('FireflyIII\Http\Requests\BudgetFormRequest'); - $request->shouldReceive('input')->andReturn(''); - - // fake store routine: - $repository = $this->mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - $repository->shouldReceive('store')->andReturn($budget); - - $this->call('POST', '/budgets/store', $data); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::store - */ - public function testStoreAndRedirect() - { - // a budget: - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $this->be($budget->user); - - $data = [ - 'name' => 'New test budget ' . rand(1, 1000), - '_token' => 'replaceme', - 'create_another' => 1, - ]; - - // fake validation routine: - $request = $this->mock('FireflyIII\Http\Requests\BudgetFormRequest'); - $request->shouldReceive('input')->andReturn(''); - - // fake store routine: - $repository = $this->mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - $repository->shouldReceive('store')->andReturn($budget); - - $this->call('POST', '/budgets/store', $data); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::update - */ - public function testUpdate() - { - - // a budget: - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $this->be($budget->user); - - $data = [ - 'name' => 'Edited test account ' . rand(1, 1000), - 'active' => 1, - '_token' => 'replaceme' - ]; - - // fake validation routine: - $request = $this->mock('FireflyIII\Http\Requests\BudgetFormRequest'); - $request->shouldReceive('input')->andReturn(''); - - // fake update routine: - $repository = $this->mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - $repository->shouldReceive('update')->andReturn($budget); - - $this->call('POST', '/budgets/update/' . $budget->id, $data); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::update - */ - public function testUpdateAndRedirect() - { - - // a budget: - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $this->be($budget->user); - - $data = [ - 'name' => 'Edited test account ' . rand(1, 1000), - 'active' => 1, - '_token' => 'replaceme', - 'return_to_edit' => 1, - ]; - - // fake validation routine: - $request = $this->mock('FireflyIII\Http\Requests\BudgetFormRequest'); - $request->shouldReceive('input')->andReturn(''); - - // fake update routine: - $repository = $this->mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - $repository->shouldReceive('update')->andReturn($budget); - - $this->call('POST', '/budgets/update/' . $budget->id, $data); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - } - - /** - * @covers FireflyIII\Http\Controllers\BudgetController::updateIncome - */ - public function testUpdateIncome() - { - - // a budget: - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $this->be($budget->user); - $date = Carbon::now()->format('FY'); - $pref = FactoryMuffin::create('FireflyIII\Models\Preference'); - Preferences::shouldReceive('get')->withArgs(['budgetIncomeTotal' . $date, 1000])->andReturn($pref); - Amount::shouldReceive('format')->andReturn('xx'); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - $lastActivity = FactoryMuffin::create('FireflyIII\Models\Preference'); - $lastActivity->data = microtime(); - Preferences::shouldReceive('lastActivity')->andReturn($lastActivity); - - // language preference: - $language = FactoryMuffin::create('FireflyIII\Models\Preference'); - $language->data = 'en'; - $language->save(); - Preferences::shouldReceive('get')->withAnyArgs()->andReturn($language); - - - $this->call('GET', '/budgets/income'); - $this->assertResponseOk(); - $this->assertViewHas('amount'); - } -} diff --git a/tests/controllers/CategoryControllerTest.php b/tests/controllers/CategoryControllerTest.php deleted file mode 100644 index 6fa7f76b00..0000000000 --- a/tests/controllers/CategoryControllerTest.php +++ /dev/null @@ -1,263 +0,0 @@ -be($category->user); - - $this->call('GET', '/categories/create'); - $this->assertResponseOk(); - $this->assertViewHas('subTitle', 'Create a new category'); - } - - /** - * @covers FireflyIII\Http\Controllers\CategoryController::delete - */ - public function testDelete() - { - - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $this->be($category->user); - - $this->call('GET', '/categories/delete/' . $category->id); - $this->assertResponseOk(); - $this->assertViewHas('subTitle', 'Delete category "' . e($category->name) . '"'); - } - - /** - * @covers FireflyIII\Http\Controllers\CategoryController::destroy - */ - public function testDestroy() - { - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $this->be($category->user); - - $repository = $this->mock('FireflyIII\Repositories\Category\CategoryRepositoryInterface'); - $repository->shouldReceive('destroy'); - - $this->call('POST', '/categories/destroy/' . $category->id, ['_token' => 'replaceMe']); - $this->assertResponseStatus(302); - $this->assertSessionHas('success', 'The category "' . e($category->name) . '" was deleted.'); - } - - /** - * @covers FireflyIII\Http\Controllers\CategoryController::edit - */ - public function testEdit() - { - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $this->be($category->user); - - $this->call('GET', '/categories/edit/' . $category->id); - $this->assertResponseOk(); - $this->assertViewHas('subTitle', 'Edit category "' . e($category->name) . '"'); - } - - /** - * @covers FireflyIII\Http\Controllers\CategoryController::index - */ - public function testIndex() - { - $collection = new Collection; - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $this->be($category->user); - $collection->push($category); - - Amount::shouldReceive('getCurrencyCode')->andReturn('xx'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - $repository = $this->mock('FireflyIII\Repositories\Category\CategoryRepositoryInterface'); - $repository->shouldReceive('getCategories')->andReturn($collection); - $repository->shouldReceive('getLatestActivity')->andReturn(new Carbon); - - $this->call('GET', '/categories'); - $this->assertResponseOk(); - $this->assertViewHas('categories'); - } - - /** - * @covers FireflyIII\Http\Controllers\CategoryController::noCategory - */ - public function testNoCategory() - { - $collection = new Collection; - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $this->be($journal->user); - $collection->push($journal); - - Amount::shouldReceive('format')->andReturn('xx'); - Amount::shouldReceive('getCurrencyCode')->andReturn('xx'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - - $repository = $this->mock('FireflyIII\Repositories\Category\CategoryRepositoryInterface'); - $repository->shouldReceive('getWithoutCategory')->andReturn($repository); - - $this->call('GET', '/categories/list/noCategory'); - $this->assertResponseOk(); - $this->assertViewHas('subTitle'); - - - } - - /** - * @covers FireflyIII\Http\Controllers\CategoryController::show - */ - public function testShow() - { - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $collection = new Collection; - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $this->be($category->user); - $collection->push($journal); - - $repository = $this->mock('FireflyIII\Repositories\Category\CategoryRepositoryInterface'); - - $repository->shouldReceive('getJournals')->andReturn($collection); - $repository->shouldReceive('countJournals')->andReturn(1); - - Amount::shouldReceive('format')->andReturn('xx'); - Amount::shouldReceive('getCurrencyCode')->andReturn('xx'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - Amount::shouldReceive('formatJournal')->andReturn('xx'); - - $this->call('GET', '/categories/show/' . $category->id); - $this->assertResponseOk(); - $this->assertViewHas('hideCategory', true); - - } - - - /** - * @covers FireflyIII\Http\Controllers\CategoryController::store - */ - public function testStore() - { - // create - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $this->be($category->user); - - // mock - $repository = $this->mock('FireflyIII\Repositories\Category\CategoryRepositoryInterface'); - $request = $this->mock('FireflyIII\Http\Requests\CategoryFormRequest'); - - // expect - $repository->shouldReceive('store')->andReturn($category); - $request->shouldReceive('input')->andReturn(''); - - $this->call('POST', '/categories/store', ['_token' => 'replaceMe', 'name' => 'Bla bla #' . rand(1, 1000)]); - $this->assertResponseStatus(302); - $this->assertSessionHas('success', 'New category "' . $category->name . '" stored!'); - } - - /** - * @covers FireflyIII\Http\Controllers\CategoryController::store - */ - public function testStoreAndRedirect() - { - // create - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $this->be($category->user); - - // mock: - $repository = $this->mock('FireflyIII\Repositories\Category\CategoryRepositoryInterface'); - $request = $this->mock('FireflyIII\Http\Requests\CategoryFormRequest'); - - // fake: - $repository->shouldReceive('store')->andReturn($category); - $request->shouldReceive('input')->andReturn(''); - - - $this->call('POST', '/categories/store', ['_token' => 'replaceMe', 'create_another' => 1, 'name' => 'Bla bla #' . rand(1, 1000)]); - $this->assertResponseStatus(302); - $this->assertSessionHas('success', 'New category "' . $category->name . '" stored!'); - } - - /** - * @covers FireflyIII\Http\Controllers\CategoryController::update - */ - public function testUpdate() - { - // create - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $this->be($category->user); - - // mock - $repository = $this->mock('FireflyIII\Repositories\Category\CategoryRepositoryInterface'); - $request = $this->mock('FireflyIII\Http\Requests\CategoryFormRequest'); - - // expect - $repository->shouldReceive('update')->andReturn($category); - $request->shouldReceive('input')->andReturn(''); - - $this->call('POST', '/categories/update/' . $category->id, ['_token' => 'replaceMe', 'name' => 'Bla bla #' . rand(1, 1000)]); - $this->assertResponseStatus(302); - $this->assertSessionHas('success', 'Category "' . $category->name . '" updated.'); - } - - /** - * @covers FireflyIII\Http\Controllers\CategoryController::update - */ - public function testUpdateAndRedirect() - { - // create - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $this->be($category->user); - - // mock - $repository = $this->mock('FireflyIII\Repositories\Category\CategoryRepositoryInterface'); - $request = $this->mock('FireflyIII\Http\Requests\CategoryFormRequest'); - - // expect - $request->shouldReceive('input')->andReturn(''); - $repository->shouldReceive('update')->andReturn($category); - - - $this->call('POST', '/categories/update/' . $category->id, ['_token' => 'replaceMe', 'return_to_edit' => 1, 'name' => 'Bla bla #' . rand(1, 1000)]); - $this->assertResponseStatus(302); - $this->assertSessionHas('success', 'Category "' . $category->name . '" updated.'); - } -} diff --git a/tests/controllers/CurrencyControllerTest.php b/tests/controllers/CurrencyControllerTest.php deleted file mode 100644 index 50153b50b3..0000000000 --- a/tests/controllers/CurrencyControllerTest.php +++ /dev/null @@ -1,279 +0,0 @@ -be($user); - - $this->call('GET', '/currency/create'); - $this->assertResponseOk(); - $this->assertViewHas('subTitle', 'Create a new currency'); - $this->assertViewHas('subTitleIcon', 'fa-plus'); - - } - - /** - * @covers FireflyIII\Http\Controllers\CurrencyController::defaultCurrency - */ - public function testDefaultCurrency() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - - $this->call('GET', '/currency/default/' . $currency->id); - $this->assertResponseStatus(302); - $this->assertSessionHas('success', $currency->name . ' is now the default currency.'); - } - - /** - * @covers FireflyIII\Http\Controllers\CurrencyController::delete - */ - public function testDelete() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - - $repository = $this->mock('FireflyIII\Repositories\Currency\CurrencyRepositoryInterface'); - $repository->shouldReceive('countJournals')->andReturn(0); - - $this->call('GET', '/currency/delete/' . $currency->id); - $this->assertResponseOk(); - $this->assertViewHas('currency'); - - } - - /** - * @covers FireflyIII\Http\Controllers\CurrencyController::delete - */ - public function testDeleteUnable() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - - $repository = $this->mock('FireflyIII\Repositories\Currency\CurrencyRepositoryInterface'); - $repository->shouldReceive('countJournals')->andReturn(1); - - $this->call('GET', '/currency/delete/' . $currency->id); - $this->assertResponseStatus(302); - $this->assertSessionHas('error'); - - } - - /** - * @covers FireflyIII\Http\Controllers\CurrencyController::destroy - */ - public function testDestroy() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $role = FactoryMuffin::create('FireflyIII\Models\Role'); - $role->name = 'owner'; - $role->save(); - $user->attachRole($role); - - $this->be($user); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - - $repository = $this->mock('FireflyIII\Repositories\Currency\CurrencyRepositoryInterface'); - $repository->shouldReceive('countJournals')->andReturn(0); - - $this->call('POST', '/currency/destroy/' . $currency->id, ['_token' => 'replaceMe']); - $this->assertResponseStatus(302); - $this->assertSessionHas('success', 'Currency "' . e($currency->name) . '" deleted'); - - } - - /** - * @covers FireflyIII\Http\Controllers\CurrencyController::destroy - */ - public function testDestroyUnable() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $role = FactoryMuffin::create('FireflyIII\Models\Role'); - $role->name = 'owner'; - $role->save(); - $user->attachRole($role); - $this->be($user); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - - $repository = $this->mock('FireflyIII\Repositories\Currency\CurrencyRepositoryInterface'); - $repository->shouldReceive('countJournals')->andReturn(1); - - $this->call('POST', '/currency/destroy/' . $currency->id, ['_token' => 'replaceMe']); - $this->assertResponseStatus(302); - $this->assertSessionHas('error'); - - } - - /** - * @covers FireflyIII\Http\Controllers\CurrencyController::edit - */ - public function testEdit() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - - $repository = $this->mock('FireflyIII\Repositories\Currency\CurrencyRepositoryInterface'); - $repository->shouldReceive('countJournals')->andReturn(0); - - $this->call('GET', '/currency/edit/' . $currency->id); - $this->assertResponseOk(); - $this->assertViewHas('currency'); - } - - /** - * @covers FireflyIII\Http\Controllers\CurrencyController::index - */ - public function testIndex() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $this->be($user); - - $repository = $this->mock('FireflyIII\Repositories\Currency\CurrencyRepositoryInterface'); - $repository->shouldReceive('get')->andReturn(new Collection); - $repository->shouldReceive('getCurrencyByPreference')->andReturn($currency); - - $this->call('GET', '/currency'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\CurrencyController::store - */ - public function testStore() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $role = FactoryMuffin::create('FireflyIII\Models\Role'); - $role->name = 'owner'; - $role->save(); - $user->attachRole($role); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $this->be($user); - - $repository = $this->mock('FireflyIII\Repositories\Currency\CurrencyRepositoryInterface'); - $request = $this->mock('FireflyIII\Http\Requests\CurrencyFormRequest'); - $request->shouldReceive('getCurrencyData')->andReturn([]); - $repository->shouldReceive('store')->andReturn($currency); - - $this->call('POST', '/currency/store', ['_token' => 'replaceMe']); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - - - } - - /** - * @covers FireflyIII\Http\Controllers\CurrencyController::store - */ - public function testStoreAndReturn() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $role = FactoryMuffin::create('FireflyIII\Models\Role'); - $role->name = 'owner'; - $role->save(); - $user->attachRole($role); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $this->be($user); - - $repository = $this->mock('FireflyIII\Repositories\Currency\CurrencyRepositoryInterface'); - $request = $this->mock('FireflyIII\Http\Requests\CurrencyFormRequest'); - $request->shouldReceive('getCurrencyData')->andReturn([]); - $repository->shouldReceive('store')->andReturn($currency); - - $this->call('POST', '/currency/store', ['_token' => 'replaceMe', 'create_another' => 1]); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - - - } - - /** - * @covers FireflyIII\Http\Controllers\CurrencyController::update - */ - public function testUpdate() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $role = FactoryMuffin::create('FireflyIII\Models\Role'); - $role->name = 'owner'; - $role->save(); - $user->attachRole($role); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $this->be($user); - - $repository = $this->mock('FireflyIII\Repositories\Currency\CurrencyRepositoryInterface'); - $request = $this->mock('FireflyIII\Http\Requests\CurrencyFormRequest'); - $request->shouldReceive('getCurrencyData')->andReturn([]); - $repository->shouldReceive('update')->andReturn($currency); - - $this->call('POST', '/currency/update/' . $currency->id, ['_token' => 'replaceMe']); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - } - - /** - * @covers FireflyIII\Http\Controllers\CurrencyController::update - */ - public function testUpdateAndReturn() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $role = FactoryMuffin::create('FireflyIII\Models\Role'); - $role->name = 'owner'; - $role->save(); - $user->attachRole($role); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $this->be($user); - - $repository = $this->mock('FireflyIII\Repositories\Currency\CurrencyRepositoryInterface'); - $request = $this->mock('FireflyIII\Http\Requests\CurrencyFormRequest'); - $request->shouldReceive('getCurrencyData')->andReturn([]); - $repository->shouldReceive('update')->andReturn($currency); - - $this->call('POST', '/currency/update/' . $currency->id, ['_token' => 'replaceMe', 'return_to_edit' => 1]); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - } -} diff --git a/tests/controllers/HelpControllerTest.php b/tests/controllers/HelpControllerTest.php deleted file mode 100644 index b7f40c5f5a..0000000000 --- a/tests/controllers/HelpControllerTest.php +++ /dev/null @@ -1,104 +0,0 @@ -be($user); - // mock some stuff. - $interface = $this->mock('FireflyIII\Helpers\Help\HelpInterface'); - $interface->shouldReceive('hasRoute')->once()->with('accounts.index')->andReturn(true); - $interface->shouldReceive('getFromCache')->once()->with('help.accounts.index.title')->andReturn('Title.'); - $interface->shouldReceive('getFromCache')->once()->with('help.accounts.index.text')->andReturn('Text'); - $interface->shouldReceive('inCache')->andReturn(true); - - - $this->call('GET', '/help/accounts.index'); - $this->assertResponseOk(); - } - - /** - * Everything present and accounted for, but not cached - * - * @covers FireflyIII\Http\Controllers\HelpController::show - */ - public function testGetHelpTextNoCache() - { - // login - $user = FactoryMuffin::create('FireflyIII\User'); - $content = ['title' => 'Bla', 'text' => 'Bla']; - - $this->be($user); - // mock some stuff. - $interface = $this->mock('FireflyIII\Helpers\Help\HelpInterface'); - $interface->shouldReceive('hasRoute')->once()->with('accounts.index')->andReturn(true); - $interface->shouldReceive('getFromGithub')->once()->with('accounts.index')->andReturn($content); - $interface->shouldReceive('putInCache')->once()->withArgs(['accounts.index', $content]); - $interface->shouldReceive('inCache')->once()->andReturn(false); - - - $this->call('GET', '/help/accounts.index'); - $this->assertResponseOk(); - } - - /** - * No such route. - * - * @covers FireflyIII\Http\Controllers\HelpController::show - */ - public function testGetHelpTextNoRoute() - { - // login - $user = FactoryMuffin::create('FireflyIII\User'); - - $this->be($user); - // mock some stuff. - $interface = $this->mock('FireflyIII\Helpers\Help\HelpInterface'); - $interface->shouldReceive('hasRoute')->once()->with('accounts.index')->andReturn(false); - - - $this->call('GET', '/help/accounts.index'); - $this->assertResponseOk(); - } -} diff --git a/tests/controllers/HomeControllerTest.php b/tests/controllers/HomeControllerTest.php deleted file mode 100644 index f4595b017e..0000000000 --- a/tests/controllers/HomeControllerTest.php +++ /dev/null @@ -1,159 +0,0 @@ -be($user); - - - $this->call('POST', '/daterange', ['end' => $end, 'start' => $start, '_token' => 'replaceme']); - $this->assertResponseOk(); - - $this->assertSessionHas('start'); - $this->assertSessionHas('end'); - - } - - - /** - * @covers FireflyIII\Http\Controllers\HomeController::dateRange - */ - public function testDateRangeWarning() - { - $start = '2014-03-01'; - $end = '2015-03-31'; - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $this->call('POST', '/daterange', ['end' => $end, 'start' => $start, '_token' => 'replaceme']); - $this->assertResponseOk(); - - $this->assertSessionHas('start'); - $this->assertSessionHas('end'); - $this->assertSessionHas('warning'); - } - - /** - * @covers FireflyIII\Http\Controllers\HomeController::flush - */ - public function testFlush() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // create at least one tag: - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->tags()->save($tag); - - $this->call('GET', '/flush'); - $this->assertResponseStatus(302); - - } - - /** - * @covers FireflyIII\Http\Controllers\HomeController::index - */ - public function testIndex() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journals = new Collection([$journal]); - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $accounts = new Collection([$account]); - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - - $this->be($user); - - // mock ALL THE THINGS! - $repository->shouldReceive('countAccounts')->once()->andReturn(3); - Preferences::shouldReceive('get')->once()->withArgs(['frontPageAccounts', []])->andReturn($preference); - $repository->shouldReceive('getFrontpageAccounts')->once()->with($preference)->andReturn($accounts); - $repository->shouldReceive('getSavingsAccounts')->once()->andReturn($accounts); - $repository->shouldReceive('getPiggyBankAccounts')->once()->andReturn($accounts); - $repository->shouldReceive('sumOfEverything')->once()->andReturn(1); - $repository->shouldReceive('getFrontpageTransactions')->once()->andReturn($journals); - - // language preference: - $language = FactoryMuffin::create('FireflyIII\Models\Preference'); - $language->data = 'en'; - $language->save(); - Preferences::shouldReceive('get')->withAnyArgs()->andReturn($language); - - $lastActivity = FactoryMuffin::create('FireflyIII\Models\Preference'); - $lastActivity->data = microtime(); - Preferences::shouldReceive('lastActivity')->andReturn($lastActivity); - - - Amount::shouldReceive('getCurrencyCode')->andReturn('EUR'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - Amount::shouldReceive('format')->andReturn('xxx'); - Amount::shouldReceive('formatJournal')->with($journal)->andReturn('xxx'); - - $this->call('GET', '/'); - $this->assertResponseOk(); - - } - - /** - * @covers FireflyIII\Http\Controllers\HomeController::index - */ - public function testIndexEmpty() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - - $this->be($user); - - // mock ALL THE THINGS! - $repository->shouldReceive('countAccounts')->once()->andReturn(0); - - // language preference: - $language = FactoryMuffin::create('FireflyIII\Models\Preference'); - $language->data = 'en'; - $language->save(); - Preferences::shouldReceive('get')->withAnyArgs()->andReturn($language); - - $lastActivity = FactoryMuffin::create('FireflyIII\Models\Preference'); - $lastActivity->data = microtime(); - Preferences::shouldReceive('lastActivity')->andReturn($lastActivity); - - $this->call('GET', '/'); - $this->assertResponseStatus(302); - $this->assertRedirectedToRoute('new-user.index'); - } - -} diff --git a/tests/controllers/JsonControllerTest.php b/tests/controllers/JsonControllerTest.php deleted file mode 100644 index 51ab83c92c..0000000000 --- a/tests/controllers/JsonControllerTest.php +++ /dev/null @@ -1,228 +0,0 @@ - new Carbon, 'end' => new Carbon]]; - $this->be($bill->user); - - $bills = $this->mock('FireflyIII\Repositories\Bill\BillRepositoryInterface'); - $accounts = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - - // mock! - $bills->shouldReceive('getActiveBills')->andReturn($collection); - $bills->shouldReceive('getRanges')->andReturn($ranges); - $bills->shouldReceive('getJournalsInRange')->andReturn(new Collection); - $bills->shouldReceive('billPaymentsInRange')->andReturn(12); - $accounts->shouldReceive('getCreditCards')->andReturn($ccs); - $accounts->shouldReceive('getTransfersInRange')->andReturn(new Collection); - Amount::shouldReceive('format')->andReturn('xx'); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - Steam::shouldReceive('balance')->andReturn(0); - - - $this->call('GET', '/json/box/bills-paid'); - $this->assertResponseOk(); - - } - - /** - * @covers FireflyIII\Http\Controllers\JsonController::boxBillsUnpaid - */ - public function testBoxBillsUnpaid() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $creditCard = FactoryMuffin::create('FireflyIII\Models\Account'); - $ccs = new Collection([$creditCard]); - $collection = new Collection([$bill]); - $ranges = [['start' => new Carbon, 'end' => new Carbon]]; - $this->be($bill->user); - - $bills = $this->mock('FireflyIII\Repositories\Bill\BillRepositoryInterface'); - $accounts = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - - // mock! - $bills->shouldReceive('getActiveBills')->andReturn($collection); - $bills->shouldReceive('getRanges')->andReturn($ranges); - $bills->shouldReceive('getJournalsInRange')->andReturn(new Collection); - $bills->shouldReceive('createFakeBill')->andReturn($bill); - $accounts->shouldReceive('getCreditCards')->andReturn($ccs); - Amount::shouldReceive('format')->andReturn('xx'); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - Steam::shouldReceive('balance')->andReturn(-1); - - $this->call('GET', '/json/box/bills-unpaid'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\JsonController::boxIn - */ - public function testBoxIn() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $repository = $this->mock('FireflyIII\Helpers\Report\ReportQueryInterface'); - $repository->shouldReceive('incomeInPeriodCorrected')->andReturn(new Collection); - Amount::shouldReceive('format')->andReturn('xx'); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - $this->call('GET', '/json/box/in'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\JsonController::boxOut - */ - public function testBoxOut() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $repository = $this->mock('FireflyIII\Helpers\Report\ReportQueryInterface'); - $repository->shouldReceive('expenseInPeriodCorrected')->andReturn(new Collection); - Amount::shouldReceive('format')->andReturn('xx'); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - $this->call('GET', '/json/box/out'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\JsonController::categories - */ - public function testCategories() - { - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $this->be($category->user); - $categories = new Collection([$category]); - - $repository = $this->mock('FireflyIII\Repositories\Category\CategoryRepositoryInterface'); - $repository->shouldReceive('getCategories')->andReturn($categories); - - $this->call('GET', '/json/categories'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\JsonController::expenseAccounts - */ - public function testExpenseAccounts() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $this->be($account->user); - $accounts = new Collection([$account]); - - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $repository->shouldReceive('getAccounts')->with(['Expense account', 'Beneficiary account'])->andReturn($accounts); - - $this->call('GET', '/json/expense-accounts'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\JsonController::revenueAccounts - */ - public function testRevenueAccounts() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $this->be($account->user); - $accounts = new Collection([$account]); - - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $repository->shouldReceive('getAccounts')->with(['Revenue account'])->andReturn($accounts); - - $this->call('GET', '/json/revenue-accounts'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\JsonController::tags - */ - public function testTags() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->user()->associate($user); - - $tag->save(); - $this->be($tag->user); - $tags = new Collection([$tag]); - - $repository = $this->mock('FireflyIII\Repositories\Tag\TagRepositoryInterface'); - $repository->shouldReceive('get')->andReturn($tags); - - $this->call('GET', '/json/tags'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\JsonController::transactionJournals - */ - public function testTransactionJournals() - { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $type = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $collection = new Collection([$journal]); - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $repository = $this->mock('FireflyIII\Repositories\Journal\JournalRepositoryInterface'); - $repository->shouldReceive('getTransactionType')->with('withdrawal')->andReturn($type); - $repository->shouldReceive('getJournalsOfType')->with($type)->andReturn($collection); - - - $this->call('GET', '/json/transaction-journals/withdrawal'); - $this->assertResponseOk(); - } - -} diff --git a/tests/controllers/NewUserControllerTest.php b/tests/controllers/NewUserControllerTest.php deleted file mode 100644 index 3016148bd8..0000000000 --- a/tests/controllers/NewUserControllerTest.php +++ /dev/null @@ -1,110 +0,0 @@ -mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - - $this->be($user); - - // mock ALL THE THINGS! - $repository->shouldReceive('countAccounts')->once()->andReturn(0); - - // language preference: - $language = FactoryMuffin::create('FireflyIII\Models\Preference'); - $language->data = 'en'; - $language->save(); - Preferences::shouldReceive('get')->withAnyArgs()->andReturn($language); - - $lastActivity = FactoryMuffin::create('FireflyIII\Models\Preference'); - $lastActivity->data = microtime(); - Preferences::shouldReceive('lastActivity')->andReturn($lastActivity); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - $this->call('GET', '/new-user'); - $this->assertResponseStatus(200); - } - - public function testIndexNoAccounts() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - - - $this->be($user); - - // mock ALL THE THINGS! - $repository->shouldReceive('countAccounts')->once()->andReturn(3); - - // language preference: - $language = FactoryMuffin::create('FireflyIII\Models\Preference'); - $language->data = 'en'; - $language->save(); - Preferences::shouldReceive('get')->withAnyArgs()->andReturn($language); - - $lastActivity = FactoryMuffin::create('FireflyIII\Models\Preference'); - $lastActivity->data = microtime(); - Preferences::shouldReceive('lastActivity')->andReturn($lastActivity); - - $this->call('GET', '/new-user'); - $this->assertResponseStatus(302); - $this->assertRedirectedToRoute('index'); - - } - - public function testPostIndex() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $this->be($user); - - $data = [ - '_token' => 'replaceMe', - 'bank_name' => 'Some Bank', - 'bank_balance' => '100', - 'balance_currency_id' => $currency->id, - 'savings_balance' => '100', - 'credit_card_limit' => '100', - - ]; - - $repository->shouldReceive('store')->andReturn($account); - - $this->call('POST', '/new-user/submit', $data); - $this->assertResponseStatus(302); - $this->assertRedirectedToRoute('index'); - - } - -} diff --git a/tests/controllers/PiggyBankControllerTest.php b/tests/controllers/PiggyBankControllerTest.php deleted file mode 100644 index 884943a5aa..0000000000 --- a/tests/controllers/PiggyBankControllerTest.php +++ /dev/null @@ -1,454 +0,0 @@ -be($piggyBank->account->user); - - - // mock - /** @var Mockery\MockInterface $repository */ - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $repository->shouldReceive('leftOnAccount')->withAnyArgs()->andReturn(12); - Amount::shouldReceive('format')->andReturn('XXxx'); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - $this->call('GET', '/piggy-banks/add/' . $piggyBank->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::create - */ - public function testCreate() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $collection = new Collection([$account]); - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // mock - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $repository->shouldReceive('getAccounts')->once()->with(['Default account', 'Asset account'])->andReturn($collection); - ExpandedForm::shouldReceive('makeSelectList')->with($collection)->andReturn([]); - - // also cover the view now that we've touched ExpandedForm: - ExpandedForm::shouldReceive('text')->andReturn(''); - ExpandedForm::shouldReceive('select')->andReturn(''); - ExpandedForm::shouldReceive('amount')->andReturn(''); - ExpandedForm::shouldReceive('date')->andReturn(''); - ExpandedForm::shouldReceive('checkbox')->andReturn(''); - ExpandedForm::shouldReceive('optionsList')->andReturn(''); - - $this->call('GET', '/piggy-banks/create'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::delete - */ - public function testDelete() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $this->be($piggyBank->account->user); - - - $this->call('GET', '/piggy-banks/delete/' . $piggyBank->id); - $this->assertResponseOk(); - $this->assertViewHas('subTitle', 'Delete piggy bank "' . e($piggyBank->name) . '"'); - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::destroy - */ - public function testDestroy() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $this->be($piggyBank->account->user); - - $repository = $this->mock('FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface'); - $repository->shouldReceive('destroy')->once()->withAnyArgs()->andReturn(true); - - - $this->call('POST', '/piggy-banks/destroy/' . $piggyBank->id, ['_token' => 'replaceMe']); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::edit - */ - public function testEdit() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $piggyBank->targetdate = Carbon::now()->addYear(); - $piggyBank->save(); - $this->be($piggyBank->account->user); - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $collection = new Collection([$account]); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $repository->shouldReceive('getAccounts')->once()->with(['Default account', 'Asset account'])->andReturn($collection); - ExpandedForm::shouldReceive('makeSelectList')->with($collection)->andReturn([]); - - // also cover the view now that we've touched ExpandedForm: - ExpandedForm::shouldReceive('text')->andReturn(''); - ExpandedForm::shouldReceive('select')->andReturn(''); - ExpandedForm::shouldReceive('amount')->andReturn(''); - ExpandedForm::shouldReceive('date')->andReturn(''); - ExpandedForm::shouldReceive('checkbox')->andReturn(''); - ExpandedForm::shouldReceive('optionsList')->andReturn(''); - - - $this->call('GET', '/piggy-banks/edit/' . $piggyBank->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::edit - */ - public function testEditNullDate() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $this->be($piggyBank->account->user); - $piggyBank->targetdate = null; - $piggyBank->save(); - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $collection = new Collection([$account]); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $repository->shouldReceive('getAccounts')->once()->with(['Default account', 'Asset account'])->andReturn($collection); - ExpandedForm::shouldReceive('makeSelectList')->with($collection)->andReturn([]); - - // also cover the view now that we've touched ExpandedForm: - ExpandedForm::shouldReceive('text')->andReturn(''); - ExpandedForm::shouldReceive('select')->andReturn(''); - ExpandedForm::shouldReceive('amount')->andReturn(''); - ExpandedForm::shouldReceive('date')->andReturn(''); - ExpandedForm::shouldReceive('checkbox')->andReturn(''); - ExpandedForm::shouldReceive('optionsList')->andReturn(''); - - - $this->call('GET', '/piggy-banks/edit/' . $piggyBank->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::index - */ - public function testIndex() - { - $piggyBank1 = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $piggyBank2 = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $piggyBank3 = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $piggyBank2->account_id = $piggyBank1->account_id; - $user = FactoryMuffin::create('FireflyIII\User'); - - $piggyBank2->save(); - - $collection = new Collection([$piggyBank1, $piggyBank2, $piggyBank3]); - $this->be($user); - - // mock! - $accounts = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $piggyBanks = $this->mock('FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface'); - - // act! - $piggyBanks->shouldReceive('getPiggyBanks')->once()->andReturn($collection); - Steam::shouldReceive('balance')->andReturn(20); - $accounts->shouldReceive('leftOnAccount')->andReturn(12); - Amount::shouldReceive('format')->andReturn('123'); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - - $this->call('GET', '/piggy-banks'); - $this->assertResponseOk(); - - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::order - */ - public function testOrder() - { - $piggyBank1 = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $piggyBank2 = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // mock! - $piggyBanks = $this->mock('FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface'); - $piggyBanks->shouldReceive('reset')->once(); - $piggyBanks->shouldReceive('setOrder'); - $array = [ - $piggyBank1->id => 0, - $piggyBank2->id => 1, - ]; - - $this->call('POST', '/piggy-banks/sort', ['_token' => 'replaceMe', 'order' => $array]); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::postAdd - */ - public function testPostAdd() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $this->be($piggyBank->account->user); - - // mock! - $accounts = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $piggyBanks = $this->mock('FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface'); - $accounts->shouldReceive('leftOnAccount')->andReturn(20); - $piggyBanks->shouldReceive('createEvent')->once(); - - Amount::shouldReceive('format')->andReturn('something'); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - $this->call('POST', '/piggy-banks/add/' . $piggyBank->id, ['_token' => 'replaceMe']); - $this->assertResponseStatus(302); - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::postAdd - */ - public function testPostAddOverdraw() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $this->be($piggyBank->account->user); - - // mock! - $accounts = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $accounts->shouldReceive('leftOnAccount')->andReturn(20); - - Amount::shouldReceive('format')->andReturn('something'); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - $this->call('POST', '/piggy-banks/add/' . $piggyBank->id, ['_token' => 'replaceMe', 'amount' => '10000']); - $this->assertResponseStatus(302); - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::postRemove - */ - public function testPostRemove() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $this->be($piggyBank->account->user); - - // mock! - $accounts = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $piggyBanks = $this->mock('FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface'); - $accounts->shouldReceive('leftOnAccount')->andReturn(20); - $piggyBanks->shouldReceive('createEvent')->once(); - - Amount::shouldReceive('format')->andReturn('something'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('something'); - - $this->call('POST', '/piggy-banks/remove/' . $piggyBank->id, ['_token' => 'replaceMe']); - $this->assertResponseStatus(302); - } - - public function testPostRemoveOverdraw() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $this->be($piggyBank->account->user); - - // mock! - $accounts = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $accounts->shouldReceive('leftOnAccount')->andReturn(20); - - Amount::shouldReceive('format')->andReturn('something'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('something'); - - $this->call('POST', '/piggy-banks/remove/' . $piggyBank->id, ['_token' => 'replaceMe', 'amount' => '10000']); - $this->assertResponseStatus(302); - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::remove - */ - public function testRemove() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $this->be($piggyBank->account->user); - - Amount::shouldReceive('format')->andReturn('something'); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - - $this->call('GET', '/piggy-banks/remove/' . $piggyBank->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::show - */ - public function testShow() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $this->be($piggyBank->account->user); - - $piggyBanks = $this->mock('FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface'); - $piggyBanks->shouldReceive('getEvents')->andReturn(new Collection); - Amount::shouldReceive('format')->andReturn('something'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('something'); - Amount::shouldReceive('getCurrencyCode')->andReturn('something'); - - - $this->call('GET', '/piggy-banks/show/' . $piggyBank->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::store - */ - public function testStore() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $this->be($piggyBank->account->user); - - $piggyBankData = [ - 'name' => 'Some name' . rand(1, 100), - 'account_id' => $piggyBank->account_id, - 'targetamount' => 100, - 'targetdate' => '', - '_token' => 'replaceMe' - ]; - - // mock! - $piggyBanks = $this->mock('FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface'); - $piggyBanks->shouldReceive('store')->once()->andReturn($piggyBank); - - $this->call('POST', '/piggy-banks/store', $piggyBankData); - $this->assertResponseStatus(302); - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::store - */ - public function testStoreCreateAnother() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $this->be($piggyBank->account->user); - - $piggyBankData = [ - 'name' => 'Some name' . rand(1, 100), - 'account_id' => $piggyBank->account_id, - 'targetamount' => 100, - 'targetdate' => '', - 'create_another' => 1, - '_token' => 'replaceMe' - ]; - - // mock! - $piggyBanks = $this->mock('FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface'); - $piggyBanks->shouldReceive('store')->once()->andReturn($piggyBank); - - $this->call('POST', '/piggy-banks/store', $piggyBankData); - $this->assertResponseStatus(302); - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::update - */ - public function testUpdate() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $this->be($piggyBank->account->user); - - $piggyBankData = [ - 'name' => 'Some name' . rand(1, 100), - 'account_id' => $piggyBank->account_id, - 'targetamount' => 200, - 'targetdate' => '', - '_token' => 'replaceMe' - ]; - - // mock! - $piggyBanks = $this->mock('FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface'); - $piggyBanks->shouldReceive('update')->once()->andReturn($piggyBank); - - $this->call('POST', '/piggy-banks/update/' . $piggyBank->id, $piggyBankData); - $this->assertResponseStatus(302); - } - - /** - * @covers FireflyIII\Http\Controllers\PiggyBankController::update - */ - public function testUpdateReturnToEdit() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $this->be($piggyBank->account->user); - - $piggyBankData = [ - 'name' => 'Some name' . rand(1, 100), - 'account_id' => $piggyBank->account_id, - 'targetamount' => 200, - 'targetdate' => '', - 'return_to_edit' => 1, - '_token' => 'replaceMe' - ]; - - // mock! - $piggyBanks = $this->mock('FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface'); - $piggyBanks->shouldReceive('update')->once()->andReturn($piggyBank); - - $this->call('POST', '/piggy-banks/update/' . $piggyBank->id, $piggyBankData); - $this->assertResponseStatus(302); - } -} diff --git a/tests/controllers/PreferencesControllerTest.php b/tests/controllers/PreferencesControllerTest.php deleted file mode 100644 index 7631aa2ea8..0000000000 --- a/tests/controllers/PreferencesControllerTest.php +++ /dev/null @@ -1,121 +0,0 @@ -be($user); - - - // mock: - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - - // fake! - $repository->shouldReceive('getAccounts')->with(['Default account', 'Asset account'])->andReturn(new Collection); - Preferences::shouldReceive('get')->once()->withArgs(['viewRange', '1M'])->andReturn($pref); - Preferences::shouldReceive('get')->once()->withArgs(['frontPageAccounts', []])->andReturn($pref); - Preferences::shouldReceive('get')->once()->withArgs(['budgetMaximum', 1000])->andReturn($pref); - Preferences::shouldReceive('get')->withArgs(['currencyPreference', 'EUR'])->andReturn($pref); - Amount::shouldReceive('format')->andReturn('xx'); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - Amount::shouldReceive('getAllCurrencies')->andReturn(new Collection); - Amount::shouldReceive('getDefaultCurrency')->andReturn($currency); - - $lastActivity = FactoryMuffin::create('FireflyIII\Models\Preference'); - $lastActivity->data = microtime(); - Preferences::shouldReceive('lastActivity')->andReturn($lastActivity); - - // language preference: - $language = FactoryMuffin::create('FireflyIII\Models\Preference'); - $language->data = 'en'; - $language->save(); - Preferences::shouldReceive('get')->withAnyArgs()->andReturn($language); - - $this->call('GET', '/preferences'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\PreferencesController::postIndex - */ - public function testPostIndex() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $data = [ - 'frontPageAccounts' => [1, 2, 3], - '_token' => 'replaceMe', - 'viewRange' => '1M', - 'language' => 'en', - ]; - - // language preference: - $language = FactoryMuffin::create('FireflyIII\Models\Preference'); - $language->data = 'en'; - $language->save(); - Preferences::shouldReceive('get')->withAnyArgs()->andReturn($language); - - Preferences::shouldReceive('set')->once()->withArgs(['frontPageAccounts', [1, 2, 3]]); - Preferences::shouldReceive('set')->once()->withArgs(['viewRange', '1M']); - Preferences::shouldReceive('set')->once()->withArgs(['budgetMaximum', 0]); - Preferences::shouldReceive('set')->once()->withArgs(['language', 'en']); - Preferences::shouldReceive('mark')->once()->andReturn(true); - - // language preference: - $language = FactoryMuffin::create('FireflyIII\Models\Preference'); - $language->data = 'en'; - $language->save(); - Preferences::shouldReceive('get')->withAnyArgs()->andReturn($language); - - $lastActivity = FactoryMuffin::create('FireflyIII\Models\Preference'); - $lastActivity->data = microtime(); - Preferences::shouldReceive('lastActivity')->andReturn($lastActivity); - - - $this->call('POST', '/preferences', $data); - $this->assertResponseStatus(302); - } -} diff --git a/tests/controllers/ProfileControllerTest.php b/tests/controllers/ProfileControllerTest.php deleted file mode 100644 index ff08eef3a2..0000000000 --- a/tests/controllers/ProfileControllerTest.php +++ /dev/null @@ -1,195 +0,0 @@ -be($user); - - $this->call('GET', '/profile/change-password'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\ProfileController::deleteAccount - */ - public function testDeleteAccount() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $this->call('GET', '/profile/delete-account'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\ProfileController::index - */ - public function testIndex() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $this->call('GET', '/profile'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\ProfileController::postChangePassword - * @covers FireflyIII\Http\Controllers\ProfileController::validatePassword - */ - public function testPostChangePassword() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $user->password = bcrypt('current'); - $user->save(); - $this->be($user); - - $post = [ - 'current_password' => 'current', - 'new_password' => 'something', - 'new_password_confirmation' => 'something', - '_token' => 'replaceMe' - ]; - - $this->call('POST', '/profile/change-password', $post); - - $this->assertRedirectedToRoute('profile'); - $this->assertSessionHas('success', 'Password changed!'); - $this->assertResponseStatus(302); - - } - - /** - * @covers FireflyIII\Http\Controllers\ProfileController::postChangePassword - * @covers FireflyIII\Http\Controllers\ProfileController::validatePassword - */ - public function testPostChangePasswordInvalidCurrent() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $post = [ - 'current_password' => 'currentWrong', - 'new_password' => 'something', - 'new_password_confirmation' => 'something', - '_token' => 'replaceMe' - ]; - - $this->call('POST', '/profile/change-password', $post); - - $this->assertRedirectedToRoute('profile.change-password'); - $this->assertSessionHas('error', 'Invalid current password!'); - $this->assertResponseStatus(302); - - } - - /** - * @covers FireflyIII\Http\Controllers\ProfileController::postChangePassword - * @covers FireflyIII\Http\Controllers\ProfileController::validatePassword - */ - public function testPostChangePasswordNoNewPassword() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $user->password = bcrypt('current'); - $user->save(); - $this->be($user); - - $post = [ - 'current_password' => 'current', - 'new_password' => 'current', - 'new_password_confirmation' => 'current', - '_token' => 'replaceMe' - ]; - - $this->call('POST', '/profile/change-password', $post); - - $this->assertSessionHas('error', 'The idea is to change your password.'); - $this->assertResponseStatus(302); - $this->assertRedirectedToRoute('profile.change-password'); - - - } - - /** - * @covers FireflyIII\Http\Controllers\ProfileController::postDeleteAccount - */ - public function testPostDeleteAccount() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $user->password = bcrypt('current'); - $user->save(); - $this->be($user); - - $post = [ - 'password' => 'current', - '_token' => 'replaceMe' - ]; - - $this->call('POST', '/profile/delete-account', $post); - - $this->assertRedirectedToRoute('index'); - $this->assertResponseStatus(302); - - } - - /** - * @covers FireflyIII\Http\Controllers\ProfileController::postDeleteAccount - */ - public function testPostDeleteAccountInvalidPassword() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $user->password = bcrypt('current'); - $user->save(); - $this->be($user); - - $post = [ - 'password' => 'currentXX', - '_token' => 'replaceMe' - ]; - - $this->call('POST', '/profile/delete-account', $post); - - $this->assertRedirectedToRoute('profile.delete-account'); - $this->assertSessionHas('error', 'Invalid password!'); - $this->assertResponseStatus(302); - - } - -} diff --git a/tests/controllers/ReportControllerTest.php b/tests/controllers/ReportControllerTest.php deleted file mode 100644 index 51791cf341..0000000000 --- a/tests/controllers/ReportControllerTest.php +++ /dev/null @@ -1,172 +0,0 @@ -be($user); - - // mock stuff - $helper = $this->mock('FireflyIII\Helpers\Report\ReportHelperInterface'); - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - - // make shared: - AccountMeta::create( - [ - 'account_id' => $account->id, - 'name' => 'accountRole', - 'data' => 'sharedAsset' - ] - ); - - $helper->shouldReceive('listOfMonths')->andReturn([]); - $helper->shouldReceive('listOfYears')->andReturn([]); - $repository->shouldReceive('getAccounts')->andReturn(new Collection([$account])); - - - $this->call('GET', '/reports'); - $this->assertResponseOk(); - - } - - /** - * @covers FireflyIII\Http\Controllers\ReportController::month - */ - public function testMonth() - { - $user = FactoryMuffin::create('FireflyIII\User'); - FactoryMuffin::create('FireflyIII\Models\Account'); - $budget1 = FactoryMuffin::create('FireflyIII\Models\Budget'); - $budget1->queryAmount = 12; - $budget2 = FactoryMuffin::create('FireflyIII\Models\Budget'); - $budget2->queryAmount = 0; - $this->be($user); - - // mock! - $helper = $this->mock('FireflyIII\Helpers\Report\ReportHelperInterface'); - - // fake! - $helper->shouldReceive('getAccountReport')->andReturn(new Collection); - $helper->shouldReceive('getIncomeReport')->andReturn(new Collection); - $helper->shouldReceive('getExpenseReport')->andReturn(new Collection); - $helper->shouldReceive('getBudgetReport')->andReturn(new Collection); - $helper->shouldReceive('getCategoryReport')->andReturn(new Collection); - $helper->shouldReceive('getBalanceReport')->andReturn(new Collection); - $helper->shouldReceive('getBillReport')->andReturn(new Collection); - - - $this->call('GET', '/reports/2015/1'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\ReportController::month - */ - public function testMonthShared() - { - $user = FactoryMuffin::create('FireflyIII\User'); - FactoryMuffin::create('FireflyIII\Models\Account'); - $budget1 = FactoryMuffin::create('FireflyIII\Models\Budget'); - $budget1->queryAmount = 12; - $budget2 = FactoryMuffin::create('FireflyIII\Models\Budget'); - $budget2->queryAmount = 0; - $this->be($user); - - // mock! - $helper = $this->mock('FireflyIII\Helpers\Report\ReportHelperInterface'); - - // fake! - $helper->shouldReceive('getAccountReport')->andReturn(new Collection); - $helper->shouldReceive('getIncomeReport')->andReturn(new Collection); - $helper->shouldReceive('getExpenseReport')->andReturn(new Collection); - $helper->shouldReceive('getBudgetReport')->andReturn(new Collection); - $helper->shouldReceive('getCategoryReport')->andReturn(new Collection); - $helper->shouldReceive('getBalanceReport')->andReturn(new Collection); - $helper->shouldReceive('getBillReport')->andReturn(new Collection); - - $this->call('GET', '/reports/2015/1/shared'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\ReportController::year - */ - public function testYear() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - - // make shared: - AccountMeta::create( - [ - 'account_id' => $account->id, - 'name' => 'accountRole', - 'data' => 'sharedAsset' - ] - ); - new Collection([$journal]); - - $this->be($user); - - $helper = $this->mock('FireflyIII\Helpers\Report\ReportHelperInterface'); - - - $helper->shouldReceive('getAccountReport')->once()->withAnyArgs()->andReturn([]); - $helper->shouldReceive('getIncomeReport')->once()->withAnyArgs()->andReturn([]); - $helper->shouldReceive('getExpenseReport')->once()->withAnyArgs()->andReturn([]); - - // mock stuff! - Amount::shouldReceive('getDefaultCurrency')->andReturn($currency); - Amount::shouldReceive('getAllCurrencies')->andReturn([$currency]); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - Amount::shouldReceive('format')->andReturn('X'); - - $this->call('GET', '/reports/2015/shared'); - $this->assertResponseOk(); - } - - -} diff --git a/tests/controllers/SearchControllerTest.php b/tests/controllers/SearchControllerTest.php deleted file mode 100644 index 33ac7f9f36..0000000000 --- a/tests/controllers/SearchControllerTest.php +++ /dev/null @@ -1,58 +0,0 @@ -be($user); - $words = ['Something']; - // mock! - $repository = $this->mock('FireflyIII\Support\Search\SearchInterface'); - $repository->shouldReceive('searchTransactions')->with($words)->once()->andReturn([]); - $repository->shouldReceive('searchAccounts')->with($words)->once()->andReturn([]); - $repository->shouldReceive('searchCategories')->with($words)->once()->andReturn([]); - $repository->shouldReceive('searchBudgets')->with($words)->once()->andReturn([]); - $repository->shouldReceive('searchTags')->with($words)->once()->andReturn([]); - - $this->call('GET', '/search?q=Something'); - $this->assertResponseOk(); - } -} diff --git a/tests/controllers/TagControllerTest.php b/tests/controllers/TagControllerTest.php deleted file mode 100644 index 9b6a29df69..0000000000 --- a/tests/controllers/TagControllerTest.php +++ /dev/null @@ -1,296 +0,0 @@ -be($user); - - $this->call('GET', '/tags/create'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TagController::delete - */ - public function testDelete() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $this->be($tag->user); - - $this->call('GET', '/tags/delete/' . $tag->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TagController::destroy - */ - public function testDestroy() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $this->be($tag->user); - - $this->call('POST', '/tags/destroy/' . $tag->id, ['_token' => 'replaceMe']); - $this->assertSessionHas('success'); - $this->assertResponseStatus(302); - - } - - /** - * @covers FireflyIII\Http\Controllers\TagController::edit - */ - public function testEdit() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $this->be($tag->user); - - $this->call('GET', '/tags/edit/' . $tag->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TagController::edit - */ - public function testEditBalancingAct() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $type = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $type->type = 'Transfer'; - $type->save(); - $journal->transactionType()->associate($type); - $journal->save(); - $tag->transactionJournals()->save($journal); - $tag->tagMode = 'balancingAct'; - $tag->save(); - $this->be($tag->user); - - $this->call('GET', '/tags/edit/' . $tag->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TagController::edit - */ - public function testEditThreeExpenses() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $type = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $type->type = 'Withdrawal'; - $type->save(); - - for ($i = 0; $i < 3; $i++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->transactionType()->associate($type); - $journal->save(); - $tag->transactionJournals()->save($journal); - } - - - $tag->tagMode = 'nothing'; - $tag->save(); - $this->be($tag->user); - - $this->call('GET', '/tags/edit/' . $tag->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TagController::hideTagHelp - */ - public function testHideTagHelp() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $this->be($tag->user); - - $this->call('POST', '/tags/hideTagHelp/true', ['_token' => 'replaceMe']); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TagController::index - */ - public function testIndex() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $this->be($tag->user); - - $this->call('GET', '/tags'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TagController::edit - */ - public function testMultipleDeposits() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $type = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - for ($i = 0; $i < 3; $i++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->transaction_type_id = $type->id; - $journal->save(); - $tag->transactionJournals()->save($journal); - } - - - $tag->tagMode = 'nothing'; - $tag->save(); - $this->be($tag->user); - - $this->call('GET', '/tags/edit/' . $tag->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TagController::show - */ - public function testShow() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $this->be($tag->user); - - $this->call('GET', '/tags/show/' . $tag->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TagController::store - */ - public function testStore() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - $data = [ - '_token' => 'replaceMe', - 'tag' => 'BlaBla' . rand(1, 1000), - 'tagMode' => 'nothing' - ]; - - $this->call('POST', '/tags/store/', $data); - $this->assertResponseStatus(302); - } - - /** - * @covers FireflyIII\Http\Controllers\TagController::store - */ - public function testStoreWithLocation() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - $data = [ - '_token' => 'replaceMe', - 'tag' => 'BlaBla' . rand(1, 1000), - 'tagMode' => 'nothing', - 'latitude' => 12, - 'longitude' => 13, - 'zoomLevel' => 3, - 'setTag' => 'true', - 'create_another' => 1, - ]; - - $this->call('POST', '/tags/store/', $data); - $this->assertResponseStatus(302); - } - - public function testUpdate() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $this->be($tag->user); - - $data = [ - '_token' => 'replaceMe', - 'tag' => 'BlaBla' . rand(1, 1000), - 'tagMode' => 'nothing', - 'id' => $tag->id, - ]; - - $this->call('POST', '/tags/update/' . $tag->id, $data); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - } - - public function testUpdateNoNameChange() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $this->be($tag->user); - - $data = [ - '_token' => 'replaceMe', - 'tag' => $tag->tag, - 'tagMode' => 'nothing', - 'id' => $tag->id, - ]; - - $this->call('POST', '/tags/update/' . $tag->id, $data); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - } - - /** - * @covers FireflyIII\Http\Controllers\TagController::update - */ - public function testUpdateWithLocation() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $this->be($tag->user); - - $data = [ - '_token' => 'replaceMe', - 'tag' => 'BlaBla' . rand(1, 1000), - 'tagMode' => 'nothing', - 'id' => $tag->id, - 'latitude' => 12, - 'setTag' => 'true', - 'longitude' => 13, - 'zoomLevel' => 3, - 'return_to_edit' => 1, - ]; - - $this->call('POST', '/tags/update/' . $tag->id, $data); - $this->assertResponseStatus(302); - } - - -} diff --git a/tests/controllers/TransactionControllerTest.php b/tests/controllers/TransactionControllerTest.php deleted file mode 100644 index 814457fe6b..0000000000 --- a/tests/controllers/TransactionControllerTest.php +++ /dev/null @@ -1,598 +0,0 @@ -be($user); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - - - // fake! - $repository->shouldReceive('getAccounts')->andReturn(new Collection); - - - $this->call('GET', '/transactions/create/withdrawal?account_id=12'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TransactionController::delete - */ - public function testDelete() - { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $this->be($journal->user); - - $this->call('GET', '/transaction/delete/' . $journal->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TransactionController::destroy - */ - public function testDestroy() - { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $this->be($journal->user); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Journal\JournalRepositoryInterface'); - - // fake! - $repository->shouldReceive('delete')->andReturn(true); - - $this->call('POST', '/transaction/destroy/' . $journal->id, ['_token' => 'replaceMe']); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - - } - - /** - * @covers FireflyIII\Http\Controllers\TransactionController::edit - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testEdit() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - // make complete journal: - $accountType = FactoryMuffin::create('FireflyIII\Models\AccountType'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $transaction1 = FactoryMuffin::create('FireflyIII\Models\Transaction'); - $transaction2 = FactoryMuffin::create('FireflyIII\Models\Transaction'); - - $accountType->type = 'Asset account'; - $account->account_type_id = $accountType->id; - - $account->save(); - $transaction1->account_id = $account->id; - $transaction1->transaction_journal_id = $journal->id; - $transaction1->save(); - - $transaction2->account_id = $account->id; - $transaction2->transaction_journal_id = $journal->id; - $transaction2->save(); - - // also add some tags: - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->transactionJournals()->save($journal); - - // and a category and a budget: - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $category->transactionJournals()->save($journal); - $budget->transactionJournals()->save($journal); - - // and a piggy bank event: - $pbEvent = FactoryMuffin::create('FireflyIII\Models\PiggyBankEvent'); - $pbEvent->transaction_journal_id = $journal->id; - $pbEvent->save(); - - $this->be($journal->user); - - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - - - // fake! - $repository->shouldReceive('getAccounts')->andReturn(new Collection); - - $this->call('GET', '/transaction/edit/' . $journal->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TransactionController::edit - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testEditCashDestination() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - // make complete journal: - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - //$expense = FactoryMuffin::create('FireflyIII\Models\Account'); // expense account - //$revenue = FactoryMuffin::create('FireflyIII\Models\Account'); // revenue account - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); // asset account - $cash = FactoryMuffin::create('FireflyIII\Models\Account'); // cash account - - $journal->transactions[0]->account_id = $asset->id; - $journal->transactions[0]->amount = -300; - $journal->transactions[0]->save(); - - $journal->transactions[0]->account_id = $cash->id; - $journal->transactions[0]->amount = 300; - $journal->transactions[0]->save(); - - $this->be($journal->user); - // mock! - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - - // fake! - $repository->shouldReceive('getAccounts')->andReturn(new Collection); - - $this->call('GET', '/transaction/edit/' . $journal->id); - - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TransactionController::edit - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testEditDeposit() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - // make complete journal: - $accountType = FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $transaction1 = FactoryMuffin::create('FireflyIII\Models\Transaction'); - $transaction2 = FactoryMuffin::create('FireflyIII\Models\Transaction'); - - $accountType->type = 'Asset account'; - $account->account_type_id = $accountType->id; - - $account->save(); - $transaction1->account_id = $account->id; - $transaction1->transaction_journal_id = $journal->id; - $transaction1->save(); - - $transaction2->account_id = $account->id; - $transaction2->transaction_journal_id = $journal->id; - $transaction2->save(); - - // also add some tags: - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->transactionJournals()->save($journal); - - // and a category and a budget: - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $category->transactionJournals()->save($journal); - $budget->transactionJournals()->save($journal); - - // and a piggy bank event: - $pbEvent = FactoryMuffin::create('FireflyIII\Models\PiggyBankEvent'); - $pbEvent->transaction_journal_id = $journal->id; - $pbEvent->save(); - - $this->be($journal->user); - - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - - - // fake! - $repository->shouldReceive('getAccounts')->andReturn(new Collection); - - $this->call('GET', '/transaction/edit/' . $journal->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TransactionController::index - */ - public function testIndexRevenue() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Journal\JournalRepositoryInterface'); - - // fake! - $repository->shouldReceive('getJournalsOfTypes')->withArgs([['Deposit'], 0, 0])->andReturn(new LengthAwarePaginator(new Collection, 0, 50)); - - $this->call('GET', '/transactions/deposit'); - $this->assertResponseOk(); - - } - - /** - * @covers FireflyIII\Http\Controllers\TransactionController::index - */ - public function testIndexTransfer() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Journal\JournalRepositoryInterface'); - - // fake! - $repository->shouldReceive('getJournalsOfTypes')->withArgs([['Transfer'], 0, 0])->andReturn(new LengthAwarePaginator(new Collection, 0, 50)); - - $this->call('GET', '/transactions/transfers'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TransactionController::index - */ - public function testIndexWithdrawal() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Journal\JournalRepositoryInterface'); - - // fake! - $repository->shouldReceive('getJournalsOfTypes')->withArgs([['Withdrawal'], 0, 0])->andReturn(new LengthAwarePaginator(new Collection, 0, 50)); - - $this->call('GET', '/transactions/withdrawal'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TransactionController::reorder - */ - public function testReorder() - { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $this->be($journal->user); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Journal\JournalRepositoryInterface'); - - // fake! - $repository->shouldReceive('getWithDate')->withAnyArgs()->andReturn($journal); - - $data = [ - 'items' => [$journal->id], - 'date' => $journal->date->format('Y-m-d'), - '_token' => 'replaceMe' - ]; - - $this->call('POST', '/transaction/reorder', $data); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\TransactionController::show - */ - public function testShow() - { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $transaction1 = FactoryMuffin::create('FireflyIII\Models\Transaction'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $transaction1->transaction_journal_id = $journal->id; - $transaction1->save(); - $this->be($journal->user); - - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Journal\JournalRepositoryInterface'); - - // fake! - $repository->shouldReceive('getAmountBefore')->withAnyArgs()->andReturn(5); - Amount::shouldReceive('getDefaultCurrency')->andReturn($currency); - Amount::shouldReceive('getAllCurrencies')->andReturn([$currency]); - Amount::shouldReceive('getCurrencyCode')->andReturn('X'); - Amount::shouldReceive('getCurrencySymbol')->andReturn('X'); - Amount::shouldReceive('formatTransaction')->andReturn('X'); - Amount::shouldReceive('format')->andReturn('X'); - - - $this->call('GET', '/transaction/show/' . $journal->id); - $this->assertResponseOk(); - } - - /** - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - * @covers FireflyIII\Http\Controllers\TransactionController::store - */ - public function testStore() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $this->be($account->user); - - $data = [ - 'what' => 'withdrawal', - 'description' => 'Bla bla bla', - 'account_id' => $account->id, - 'expense_account' => 'Bla bla', - 'amount' => '100', - 'amount_currency_id' => $currency->id, - 'date' => '2015-05-05', - 'budget_id' => '0', - 'category' => '', - 'tags' => 'fat-test', - 'piggy_bank_id' => '0', - '_token' => 'replaceMe', - ]; - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Journal\JournalRepositoryInterface'); - - // fake! - $repository->shouldReceive('store')->andReturn($journal); - - - $this->call('POST', '/transactions/store/withdrawal', $data); - - //$this->assertSessionHas('errors','bla'); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - - } - - /** - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - * @covers FireflyIII\Http\Controllers\TransactionController::store - */ - public function testStoreCreateAnother() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $this->be($account->user); - - $data = [ - 'what' => 'withdrawal', - 'description' => 'Bla bla bla', - 'account_id' => $account->id, - 'expense_account' => 'Bla bla', - 'amount' => '100', - 'amount_currency_id' => $currency->id, - 'date' => '2015-05-05', - 'budget_id' => '0', - 'create_another' => '1', - 'category' => '', - 'tags' => 'fat-test', - 'piggy_bank_id' => '0', - '_token' => 'replaceMe', - ]; - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Journal\JournalRepositoryInterface'); - - // fake! - $repository->shouldReceive('store')->andReturn($journal); - - - $this->call('POST', '/transactions/store/withdrawal', $data); - - //$this->assertSessionHas('errors','bla'); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - - } - - /** - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - * @covers FireflyIII\Http\Controllers\TransactionController::store - */ - public function testStoreTransfer() - { - // account types: - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - $asset = FactoryMuffin::create('FireflyIII\Models\AccountType'); - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $account2 = FactoryMuffin::create('FireflyIII\Models\Account'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - - $piggy = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $this->be($account->user); - - $account2->user_id = $account->user_id; - $account->account_type_id = $asset->id; - $account2->account_type_id = $asset->id; - $piggy->account_id = $account->id; - $account->save(); - $account2->save(); - $piggy->save(); - - $data = [ - 'what' => 'transfer', - 'description' => 'Bla bla bla', - 'account_from_id' => $account->id, - 'account_to_id' => $account2->id, - 'amount' => '100', - 'amount_currency_id' => $currency->id, - 'date' => '2015-05-05', - 'budget_id' => '0', - 'create_another' => '1', - 'category' => '', - 'tags' => 'fat-test', - 'piggy_bank_id' => $piggy->id, - '_token' => 'replaceMe', - ]; - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Journal\JournalRepositoryInterface'); - - // fake! - $repository->shouldReceive('store')->andReturn($journal); - - - $this->call('POST', '/transactions/store/withdrawal', $data); - - //$this->assertSessionHas('errors','bla'); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - - } - - /** - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - * @covers FireflyIII\Http\Controllers\TransactionController::update - */ - public function testUpdate() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $this->be($journal->user); - $account->user_id = $journal->user_id; - $account->save(); - - $data = [ - '_token' => 'replaceMe', - 'id' => $journal->id, - 'what' => 'withdrawal', - 'description' => 'LunchX', - 'account_id' => $account->id, - 'expense_account' => 'Lunch House', - 'amount' => '4.72', - 'amount_currency_id' => $currency->id, - 'date' => '2015-05-31', - 'budget_id' => '0', - 'category' => 'Lunch', - 'tags' => 'fat-test', - 'piggy_bank_id' => '0', - ]; - - $this->call('POST', '/transactions/store/withdrawal', $data); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Journal\JournalRepositoryInterface'); - - // fake! - $repository->shouldReceive('update')->andReturn($journal); - - - $this->call('POST', '/transaction/update/' . $journal->id, $data); - //$this->assertSessionHas('errors','bla'); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - - - } - - /** - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - * @covers FireflyIII\Http\Controllers\TransactionController::update - */ - public function testUpdateWithRedirect() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $this->be($journal->user); - $account->user_id = $journal->user_id; - $account->save(); - - $data = [ - '_token' => 'replaceMe', - 'id' => $journal->id, - 'what' => 'withdrawal', - 'description' => 'LunchX', - 'account_id' => $account->id, - 'expense_account' => 'Lunch House', - 'amount' => '4.72', - 'amount_currency_id' => $currency->id, - 'date' => '2015-05-31', - 'budget_id' => '0', - 'category' => 'Lunch', - 'return_to_edit' => 1, - 'tags' => 'fat-test', - 'piggy_bank_id' => '0', - ]; - - $this->call('POST', '/transactions/store/withdrawal', $data); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Journal\JournalRepositoryInterface'); - - // fake! - $repository->shouldReceive('update')->andReturn($journal); - - - $this->call('POST', '/transaction/update/' . $journal->id, $data); - //$this->assertSessionHas('errors','bla'); - $this->assertResponseStatus(302); - $this->assertSessionHas('success'); - - - } - -} diff --git a/tests/controllers/charts/ChartAccountControllerTest.php b/tests/controllers/charts/ChartAccountControllerTest.php deleted file mode 100644 index 8f41214040..0000000000 --- a/tests/controllers/charts/ChartAccountControllerTest.php +++ /dev/null @@ -1,134 +0,0 @@ -account_type_id = $asset->id; - $two->account_type_id = $asset->id; - $one->save(); - $two->save(); - $accounts = new Collection([$one, $two]); - $date = new Carbon; - $this->be($user); - - // make one shared: - AccountMeta::create( - [ - 'account_id' => $one->id, - 'name' => 'accountRole', - 'data' => 'sharedAsset' - ] - ); - - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - - // fake! - $repository->shouldReceive('getAccounts')->once()->andReturn($accounts); - - $this->call('GET', '/chart/account/month/' . $date->format('Y/m')); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\AccountController::all - */ - public function testAllShared() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $accounts = new Collection([$account]); - $date = new Carbon; - $this->be($user); - - // make it shared: - AccountMeta::create( - [ - 'account_id' => $account->id, - 'name' => 'accountRole', - 'data' => 'sharedAsset' - ] - ); - - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - - // fake! - $repository->shouldReceive('getAccounts')->once()->andReturn($accounts); - - - $this->call('GET', '/chart/account/month/' . $date->format('Y/m') . '/shared'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\AccountController::frontpage - */ - public function testFrontpage() - { - $accounts = new Collection([FactoryMuffin::create('FireflyIII\Models\Account')]); - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - - // fake! - $repository->shouldReceive('getFrontpageAccounts')->andReturn($accounts); - - $this->call('GET', '/chart/account/frontpage'); - $this->assertResponseOk(); - - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\AccountController::single - */ - public function testSingle() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $this->be($account->user); - - $this->call('GET', '/chart/account/' . $account->id); - $this->assertResponseOk(); - - } -} diff --git a/tests/controllers/charts/ChartBillControllerTest.php b/tests/controllers/charts/ChartBillControllerTest.php deleted file mode 100644 index b7f3ec3f9d..0000000000 --- a/tests/controllers/charts/ChartBillControllerTest.php +++ /dev/null @@ -1,100 +0,0 @@ -be($user); - - - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\BillController::frontpage - */ - public function testFrontpage() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // set! - $bills = new Collection([FactoryMuffin::create('FireflyIII\Models\Bill'), FactoryMuffin::create('FireflyIII\Models\Bill')]); - $journals = new Collection( - [FactoryMuffin::create('FireflyIII\Models\TransactionJournal'), FactoryMuffin::create('FireflyIII\Models\TransactionJournal')] - ); - $creditCards = new Collection([FactoryMuffin::create('FireflyIII\Models\Account'), FactoryMuffin::create('FireflyIII\Models\Account')]); - $ranges = [['start' => new Carbon, 'end' => new Carbon]]; - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Bill\BillRepositoryInterface'); - $accounts = $this->mock('FireflyIII\Repositories\Account\AccountRepositoryInterface'); - - - // fake! - $repository->shouldReceive('getActiveBills')->andReturn($bills); - $repository->shouldReceive('getRanges')->andReturn($ranges); - $repository->shouldReceive('getJournalsInRange')->andReturn(new Collection, $journals); - $accounts->shouldReceive('getCreditCards')->andReturn($creditCards); - $accounts->shouldReceive('getTransfersInRange')->andReturn(new Collection); - $repository->shouldReceive('createFakeBill')->andReturn($bills->first()); - Steam::shouldReceive('balance')->andReturn(-10, 0); - - $lastActivity = FactoryMuffin::create('FireflyIII\Models\Preference'); - $lastActivity->data = microtime(); - Preferences::shouldReceive('lastActivity')->andReturn($lastActivity); - - $language = FactoryMuffin::create('FireflyIII\Models\Preference'); - $language->data = 'en'; - Preferences::shouldReceive('get')->withArgs(['language', 'en'])->andReturn($language); - - - $this->call('GET', '/chart/bill/frontpage'); - $this->assertResponseOk(); - - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\BillController::single - */ - public function testSingle() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $this->be($bill->user); - - // set - $journals = new Collection([FactoryMuffin::create('FireflyIII\Models\TransactionJournal')]); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Bill\BillRepositoryInterface'); - $repository->shouldReceive('getJournals')->andReturn($journals); - - // fake! - - $this->call('GET', '/chart/bill/' . $bill->id); - $this->assertResponseOk(); - - } - - -} diff --git a/tests/controllers/charts/ChartBudgetControllerTest.php b/tests/controllers/charts/ChartBudgetControllerTest.php deleted file mode 100644 index 4670313328..0000000000 --- a/tests/controllers/charts/ChartBudgetControllerTest.php +++ /dev/null @@ -1,164 +0,0 @@ -be($budget->user); - - $this->call('GET', '/chart/budget/' . $budget->id); - $this->assertResponseOk(); - - - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\BudgetController::budgetLimit - */ - public function testBudgetLimit() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - /** @var \FireflyIII\Models\BudgetLimit $limit */ - $limit = FactoryMuffin::create('FireflyIII\Models\BudgetLimit'); - /** @var \FireflyIII\Models\LimitRepetition $repetition */ - $repetition = FactoryMuffin::create('FireflyIII\Models\LimitRepetition'); - - $start = Carbon::now()->startOfMonth(); - $end = Carbon::now()->endOfMonth(); - - $budget->user_id = $user->id; - $limit->budget_id = $budget->id; - $limit->startdate = $start; - $repetition->budget_limit_id = $limit->id; - $repetition->startdate = $start; - $repetition->enddate = $end; - - $budget->save(); - $limit->save(); - $repetition->save(); - - - $this->be($user); - - $this->call('GET', '/chart/budget/' . $budget->id . '/' . $repetition->id); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\BudgetController::frontpage - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testFrontpage() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $start = Carbon::now()->startOfMonth(); - $end = Carbon::now()->endOfMonth(); - $budgets = new Collection; - $limits = []; - $repetitions = []; - - for ($i = 0; $i < 5; $i++) { - /** @var \FireflyIII\Models\Budget $budget */ - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $budgets->push($budget); - - /** @var \FireflyIII\Models\BudgetLimit $limit */ - $limit = FactoryMuffin::create('FireflyIII\Models\BudgetLimit'); - $limit->budget_id = $budget->id; - $limit->startdate = $start; - $limit->save(); - - $set = new Collection([$limit]); - $limits[] = $set; - - /** @var \FireflyIII\Models\LimitRepetition $repetition */ - $repetition = FactoryMuffin::create('FireflyIII\Models\LimitRepetition'); - $repetition->budget_limit_id = $limit->id; - $repetition->startdate = $start; - $repetition->enddate = $end; - $repetition->save(); - $set = new Collection([$repetition]); - $repetitions[] = $set; - } - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - - // fake! - $repository->shouldReceive('getBudgets')->andReturn($budgets); - $repository->shouldReceive('getBudgetLimitRepetitions')->andReturn($repetitions[0], $repetitions[1], new Collection); - $repository->shouldReceive('spentInPeriodCorrected')->andReturn(10); - $repository->shouldReceive('getWithoutBudgetSum')->andReturn(10); - - $this->call('GET', '/chart/budget/frontpage'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\BudgetController::year - */ - public function testYear() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $collection = new Collection([$budget]); - $this->be($user); - - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - - // fake! - $repository->shouldReceive('getBudgets')->andReturn($collection); - $repository->shouldReceive('spentInPeriodCorrected')->andReturn(0); - - - $this->call('GET', '/chart/budget/year/2015'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\BudgetController::year - */ - public function testYearShared() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $this->call('GET', '/chart/budget/year/2015/shared'); - $this->assertResponseOk(); - } - -} diff --git a/tests/controllers/charts/ChartCategoryControllerTest.php b/tests/controllers/charts/ChartCategoryControllerTest.php deleted file mode 100644 index fe544b7d1f..0000000000 --- a/tests/controllers/charts/ChartCategoryControllerTest.php +++ /dev/null @@ -1,125 +0,0 @@ -be($category->user); - - $this->call('GET', '/chart/category/' . $category->id . '/all'); - $this->assertResponseOk(); - - - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\CategoryController::frontpage - */ - public function testFrontpage() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // make data: - $set = [ - ['name' => 'Something', 'sum' => 100], - ['name' => 'Something Else', 'sum' => 200], - ['name' => 'Something Else Entirely', 'sum' => 200] - ]; - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Category\CategoryRepositoryInterface'); - - // fake! - $repository->shouldReceive('getCategoriesAndExpensesCorrected')->andReturn($set); - - //getCategoriesAndExpensesCorrected - - $this->call('GET', '/chart/category/frontpage'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\CategoryController::month - */ - public function testMonth() - { - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $this->be($category->user); - - $this->call('GET', '/chart/category/' . $category->id . '/month'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\CategoryController::year - */ - public function testYear() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $categories = new Collection([FactoryMuffin::create('FireflyIII\Models\Category')]); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Category\CategoryRepositoryInterface'); - - // fake! - $repository->shouldReceive('getCategories')->andReturn($categories); - $repository->shouldReceive('spentInPeriodCorrected')->andReturn(0); - - $this->call('GET', '/chart/category/year/2015'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\CategoryController::year - */ - public function testYearShared() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $categories = new Collection([FactoryMuffin::create('FireflyIII\Models\Category')]); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Category\CategoryRepositoryInterface'); - - // fake! - $repository->shouldReceive('getCategories')->andReturn($categories); - $repository->shouldReceive('spentInPeriodCorrected')->andReturn(0); - - $this->call('GET', '/chart/category/year/2015/shared'); - $this->assertResponseOk(); - } - -} diff --git a/tests/controllers/charts/ChartPiggyBankControllerTest.php b/tests/controllers/charts/ChartPiggyBankControllerTest.php deleted file mode 100644 index b5b27fc0c5..0000000000 --- a/tests/controllers/charts/ChartPiggyBankControllerTest.php +++ /dev/null @@ -1,53 +0,0 @@ -be($piggy->account->user); - - // data: - $obj = new stdClass; - $obj->sum = 100; - $obj->date = '2015-01-01'; - $set = [ - $obj - ]; - - // mock! - $repository = $this->mock('FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface'); - - // fake! - $repository->shouldReceive('getEventSummarySet')->andReturn($set); - - $this->call('GET', '/chart/piggyBank/' . $piggy->id); - $this->assertResponseOk(); - } -} diff --git a/tests/controllers/charts/ChartReportControllerTest.php b/tests/controllers/charts/ChartReportControllerTest.php deleted file mode 100644 index 950bcb25a5..0000000000 --- a/tests/controllers/charts/ChartReportControllerTest.php +++ /dev/null @@ -1,77 +0,0 @@ -be($user); - - $this->call('GET', '/chart/report/in-out/2015'); - $this->assertResponseOk(); - - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\ReportController::yearInOut - */ - public function testYearInOutShared() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $this->call('GET', '/chart/report/in-out/2015/shared'); - $this->assertResponseOk(); - - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\ReportController::yearInOutSummarized - */ - public function testYearInOutSummarized() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $this->call('GET', '/chart/report/in-out-sum/2015'); - $this->assertResponseOk(); - } - - /** - * @covers FireflyIII\Http\Controllers\Chart\ReportController::yearInOutSummarized - */ - public function testYearInOutSummarizedShared() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $this->call('GET', '/chart/report/in-out-sum/2015/shared'); - $this->assertResponseOk(); - } -} diff --git a/tests/factories/all.php b/tests/factories/all.php deleted file mode 100644 index 96a6bb4044..0000000000 --- a/tests/factories/all.php +++ /dev/null @@ -1,321 +0,0 @@ - 'word', - ] -); - -FactoryMuffin::define( - 'FireflyIII\Models\Bill', - [ - 'user_id' => 'factory|FireflyIII\User', - 'name' => 'sentence', - 'match' => function () { - $words = []; - for ($i = 0; $i < 3; $i++) { - $words[] = RandomString::generateRandomString(5); - } - - return join(',', $words); - }, - 'amount_min' => 10, - 'amount_max' => 20, - 'date' => 'date', - 'active' => 1, - 'automatch' => 1, - 'repeat_freq' => 'monthly', - 'skip' => 0, - 'name_encrypted' => 1, - 'match_encrypted' => 1, - - ] -); - -FactoryMuffin::define( - 'FireflyIII\Models\Account', - [ - 'user_id' => 'factory|FireflyIII\User', - 'account_type_id' => 'factory|FireflyIII\Models\AccountType', - 'name' => 'word', - 'active' => 'boolean', - 'encrypted' => function () { - return true; - }, - 'virtual_balance' => 0 - ] -); - -FactoryMuffin::define( - 'FireflyIII\Models\Tag', - [ - 'description' => 'sentence', - 'user_id' => 'factory|FireflyIII\User', - 'tag' => function () { - return RandomString::generateRandomString(20); - }, - 'tagMode' => 'nothing', - 'date' => 'date', - 'latitude' => 12, - 'longitude' => 13, - 'zoomLevel' => 3, - ] -); - -FactoryMuffin::define( - 'FireflyIII\Models\Budget', - [ - 'user_id' => 'factory|FireflyIII\User', - 'name' => 'sentence', - 'active' => 'boolean', - 'encrypted' => 1, - ] -); - -FactoryMuffin::define( - 'FireflyIII\Models\TransactionGroup', - [ - 'user_id' => 'factory|FireflyIII\User', - 'relation' => 'balance', - ] -); - - -FactoryMuffin::define( - 'FireflyIII\Models\Category', - [ - 'user_id' => 'factory|FireflyIII\User', - 'name' => 'sentence', - 'encrypted' => 1, - ] -); - -FactoryMuffin::define( - 'FireflyIII\Models\LimitRepetition', - [ - 'budget_limit_id' => 'factory|FireflyIII\Models\BudgetLimit', - 'startdate' => 'date', - 'enddate' => 'date', - 'amount' => function () { - return rand(1, 100); - }, - ] -); - -FactoryMuffin::define( - 'FireflyIII\Models\BudgetLimit', - [ - 'budget_id' => 'factory|FireflyIII\Models\Budget', - 'startdate' => 'date', - 'amount' => function () { - return rand(1, 100); - }, - 'repeats' => 'false', - 'repeat_freq' => 'monthly', - - ] -); - - -FactoryMuffin::define( - 'FireflyIII\Models\Preference', - [ - 'name' => 'word', - 'data' => 'sentence', - 'user_id' => 'factory|FireflyIII\User', - ] -); - -FactoryMuffin::define( - 'FireflyIII\Models\AccountType', - [ - 'type' => function () { - $types = ['Expense account', 'Revenue account', 'Asset account', 'Cash account']; - $count = DB::table('account_types')->count(); - if ($count < 4) { - return $types[$count]; - } else { - return RandomString::generateRandomString(10); - } - }, - 'editable' => 1, - ] -); - -FactoryMuffin::define( - 'FireflyIII\Models\TransactionCurrency', - [ - 'code' => function () { - return RandomString::generateRandomString(3); - }, - 'symbol' => function () { - return RandomString::generateRandomString(8); - }, - 'name' => 'word' - ] -); - - -FactoryMuffin::define( - 'FireflyIII\User', - [ - 'email' => function () { - $first = RandomString::generateRandomString(20); - $second = RandomString::generateRandomString(20); - $domain = RandomString::generateRandomString(30); - $email = $first . '.' . $second . '@' . $domain . '.com'; - - return $email; - }, - 'password' => bcrypt('james'), - ] -); - -FactoryMuffin::define( - 'FireflyIII\Models\Transaction', - [ - 'transaction_journal_id' => 'factory|FireflyIII\Models\TransactionJournal', - 'amount' => function () { - return rand(1, 100); - }, - 'description' => 'sentence', - 'account_id' => 'factory|FireflyIII\Models\Account' - ] -); - -FactoryMuffin::define( - 'FireflyIII\Models\PiggyBank', - [ - 'account_id' => 'factory|FireflyIII\Models\Account', - 'name' => 'sentence', - 'targetamount' => function () { - return rand(1, 100); - }, - 'startdate' => 'date', - 'targetdate' => 'date', - 'remind_me' => false, - 'reminder_skip' => 0, - 'order' => 0, - ] -); - -FactoryMuffin::define( - 'FireflyIII\Models\PiggyBankRepetition', - [ - 'piggy_bank_id' => 'factory|FireflyIII\Models\PiggyBank', - 'startdate' => 'date', - 'targetdate' => 'date', - 'currentamount' => function () { - return rand(1, 100); - }, - ] -); - - -FactoryMuffin::define( - 'FireflyIII\Models\PiggyBankEvent', - [ - 'piggy_bank_id' => 'factory|FireflyIII\Models\PiggyBank', - 'transaction_journal_id' => 'factory|FireflyIII\Models\TransactionJournal', - 'date' => 'date', - 'amount' => function () { - return rand(1, 100); - }, - ] -); - - -FactoryMuffin::define( - 'FireflyIII\Models\TransactionType', - [ - 'type' => function () { - $types = ['Withdrawal', 'Deposit', 'Transfer']; - $count = DB::table('transaction_types')->count(); - if ($count < 3) { - return $types[$count]; - } else { - return RandomString::generateRandomString(10); - } - } - ] -); - -FactoryMuffin::define( - 'FireflyIII\Models\TransactionJournal', - [ - 'user_id' => 'factory|FireflyIII\User', - 'transaction_type_id' => 'factory|FireflyIII\Models\TransactionType', - 'transaction_currency_id' => 'factory|FireflyIII\Models\TransactionCurrency', - 'description' => 'sentence', - 'completed' => '1', - 'date' => 'date', - 'encrypted' => '1', - 'order' => '0', - ], function (TransactionJournal $object, $saved) { - if ($saved) { - $one = FactoryMuffin::create('FireflyIII\Models\Account'); - $two = FactoryMuffin::create('FireflyIII\Models\Account'); - - Transaction::create( - [ - 'account_id' => $one->id, - 'transaction_journal_id' => $object->id, - 'amount' => 100 - ] - ); - Transaction::create( - [ - 'account_id' => $two->id, - 'transaction_journal_id' => $object->id, - 'amount' => -100 - ] - ); - - } - -} -); diff --git a/tests/generators/ChartJsAccountChartGeneratorTest.php b/tests/generators/ChartJsAccountChartGeneratorTest.php deleted file mode 100644 index fd6cd6118f..0000000000 --- a/tests/generators/ChartJsAccountChartGeneratorTest.php +++ /dev/null @@ -1,114 +0,0 @@ -object = new ChartJsAccountChartGenerator; - - parent::setUp(); - - - } - - /** - * This method is called before the first test of this test class is run. - * - * @since Method available since Release 3.4.0 - */ - public static function setUpBeforeClass() - { - parent::setUpBeforeClass(); - } - - /** - * @covers FireflyIII\Generator\Chart\Account\ChartJsAccountChartGenerator::frontpage - */ - public function testFrontpage() - { - // be somebody - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // create some accounts: - $accounts = new Collection; - for ($i = 0; $i < 5; $i++) { - $accounts->push(FactoryMuffin::create('FireflyIII\Models\Account')); - } - - $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); - $preference->data = 'en'; - $preference->save(); - - // data for call: - $start = Carbon::createFromDate(2015, 1, 1); - $end = Carbon::createFromDate(2015, 1, 15); - - // mock language preference: - Preferences::shouldReceive('get')->withArgs(['language', 'en'])->andReturn($preference); - - // mock Steam::balance - Steam::shouldReceive('balance')->withAnyArgs()->andReturn(0); - - // call - $result = $this->object->frontpage($accounts, $start, $end); - - $this->assertEquals($accounts->count(), $result['count']); - $this->assertCount(15, $result['labels']); - $this->assertCount($accounts->count(), $result['datasets']); - } - - /** - * @covers FireflyIII\Generator\Chart\Account\ChartJsAccountChartGenerator::single - */ - public function testSingle() - { - // be somebody - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); - $preference->data = 'en'; - $preference->save(); - - // mock language preference: - Preferences::shouldReceive('get')->withArgs(['language', 'en'])->andReturn($preference); - - // mock Steam::balance - Steam::shouldReceive('balance')->withAnyArgs()->andReturn(0); - - // data for call: - $start = Carbon::createFromDate(2015, 1, 1); - $end = Carbon::createFromDate(2015, 1, 15); - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - - // call - $result = $this->object->single($account, $start, $end); - - - // test - $this->assertCount(15, $result['labels']); - $this->assertEquals($account->name, $result['datasets'][0]['label']); - $this->assertCount(15, $result['datasets'][0]['data']); - - - } -} \ No newline at end of file diff --git a/tests/generators/ChartJsBillChartGeneratorTest.php b/tests/generators/ChartJsBillChartGeneratorTest.php deleted file mode 100644 index 62485e9c84..0000000000 --- a/tests/generators/ChartJsBillChartGeneratorTest.php +++ /dev/null @@ -1,100 +0,0 @@ -object = new ChartJsBillChartGenerator(); - - - } - - /** - * This method is called before the first test of this test class is run. - * - * @since Method available since Release 3.4.0 - */ - public static function setUpBeforeClass() - { - parent::setUpBeforeClass(); - } - - /** - * @covers FireflyIII\Generator\Chart\Bill\ChartJsBillChartGenerator::frontpage - */ - public function testFrontpage() - { - // to test frontpage, we generate the exact fake entries - // needed: - $paid = new Collection; - for ($i = 0; $i < 5; $i++) { - $obj = new stdClass(); - $obj->description = 'Something'; - $obj->amount = 100; - $paid->push($obj); - } - - $unpaid = new Collection; - $sum = 0; - for ($i = 0; $i < 5; $i++) { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $date = new Carbon; - $sum += (($bill->amount_max + $bill->amount_min) / 2); - $unpaid->push([$bill, $date]); - } - - - $data = $this->object->frontpage($paid, $unpaid); - - $this->assertCount(2, $data); - $this->assertEquals($sum, $data[0]['value']); - $this->assertEquals(500, $data[1]['value']); - } - - /** - * @covers FireflyIII\Generator\Chart\Bill\ChartJsBillChartGenerator::single - */ - public function testSingle() - { - - $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); - $preference->data = 'en'; - $preference->save(); - - // mock language preference: - Preferences::shouldReceive('get')->withArgs(['language', 'en'])->andReturn($preference); - - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $entries = new Collection; - for ($i = 0; $i < 5; $i++) { - $obj = new stdClass; - $obj->amount = 100; - $obj->date = new Carbon; - $entries->push($obj); - } - $data = $this->object->single($bill, $entries); - - $this->assertCount(5, $data['labels']); - $this->assertCount(5, $data['datasets'][1]['data']); - $this->assertEquals(100, $data['datasets'][1]['data'][0]); // see if first is equal. - - - } -} \ No newline at end of file diff --git a/tests/generators/ChartJsBudgetChartGeneratorTest.php b/tests/generators/ChartJsBudgetChartGeneratorTest.php deleted file mode 100644 index 4fe5e2290e..0000000000 --- a/tests/generators/ChartJsBudgetChartGeneratorTest.php +++ /dev/null @@ -1,113 +0,0 @@ -object = new ChartJsBudgetChartGenerator(); - - } - - /** - * This method is called before the first test of this test class is run. - * - * @since Method available since Release 3.4.0 - */ - public static function setUpBeforeClass() - { - parent::setUpBeforeClass(); - } - - /** - * @covers FireflyIII\Generator\Chart\Budget\ChartJsBudgetChartGenerator::budget - */ - public function testBudget() - { - $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); - $preference->data = 'en'; - $preference->save(); - - // mock language preference: - Preferences::shouldReceive('get')->withArgs(['language', 'en'])->andReturn($preference); - - // make a collection with some amounts in them. - $collection = new Collection; - for ($i = 0; $i < 5; $i++) { - $collection->push([new Carbon, 100]); - } - - $data = $this->object->budget($collection); - - $this->assertCount(5, $data['labels']); - $this->assertCount(5, $data['datasets'][0]['data']); - $this->assertEquals(100, $data['datasets'][0]['data'][0]); - } - - /** - * @covers FireflyIII\Generator\Chart\Budget\ChartJsBudgetChartGenerator::frontpage - */ - public function testFrontpage() - { - // make a collection with some amounts in them. - $collection = new Collection; - for ($i = 0; $i < 5; $i++) { - $collection->push(['Some label', 100, 200, 300]); - } - - $data = $this->object->frontpage($collection); - - $this->assertCount(5, $data['labels']); - $this->assertCount(5, $data['datasets'][0]['data']); - $this->assertEquals(100, $data['datasets'][0]['data'][0]); - $this->assertEquals(200, $data['datasets'][1]['data'][0]); - $this->assertEquals(300, $data['datasets'][2]['data'][0]); - - } - - /** - * @covers FireflyIII\Generator\Chart\Budget\ChartJsBudgetChartGenerator::year - */ - public function testYear() - { - $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); - $preference->data = 'en'; - $preference->save(); - - $budgets = new Collection; - $entries = new Collection; - - // make some budgets: - for ($i = 0; $i < 5; $i++) { - $budgets->push(FactoryMuffin::create('FireflyIII\Models\Budget')); - $entries->push([new Carbon, 100, 100, 100]); - } - - // mock language preference: - Preferences::shouldReceive('get')->withArgs(['language', 'en'])->andReturn($preference); - - $data = $this->object->year($budgets, $entries); - - $this->assertCount(5, $data['labels']); - $this->assertCount(5, $data['datasets']); - $this->assertCount(3, $data['datasets'][0]['data']); - - } -} \ No newline at end of file diff --git a/tests/generators/ChartJsCategoryChartGeneratorTest.php b/tests/generators/ChartJsCategoryChartGeneratorTest.php deleted file mode 100644 index 3b75f4361a..0000000000 --- a/tests/generators/ChartJsCategoryChartGeneratorTest.php +++ /dev/null @@ -1,114 +0,0 @@ -object = new ChartJsCategoryChartGenerator; - - } - - /** - * This method is called before the first test of this test class is run. - * - * @since Method available since Release 3.4.0 - */ - public static function setUpBeforeClass() - { - parent::setUpBeforeClass(); - } - - /** - * @covers FireflyIII\Generator\Chart\Category\ChartJsCategoryChartGenerator::all - */ - public function testAll() - { - - $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); - $preference->data = 'en'; - $preference->save(); - - // mock language preference: - Preferences::shouldReceive('get')->withArgs(['language', 'en'])->andReturn($preference); - - - // make a collection of stuff: - $collection = new Collection; - for ($i = 0; $i < 5; $i++) { - $collection->push([new Carbon, 100]); - } - - $data = $this->object->all($collection); - - $this->assertCount(5, $data['labels']); - $this->assertCount(5, $data['datasets'][0]['data']); - $this->assertEquals(100, $data['datasets'][0]['data'][0]); - } - - /** - * @covers FireflyIII\Generator\Chart\Category\ChartJsCategoryChartGenerator::frontpage - */ - public function testFrontpage() - { - // make a collection of stuff: - $collection = new Collection; - for ($i = 0; $i < 5; $i++) { - $collection->push(['name' => 'Something', 'sum' => 100]); - } - - $data = $this->object->frontpage($collection); - - $this->assertCount(5, $data['labels']); - $this->assertCount(5, $data['datasets'][0]['data']); - $this->assertEquals('Something', $data['labels'][0]); - $this->assertEquals(100, $data['datasets'][0]['data'][0]); - } - - /** - * @covers FireflyIII\Generator\Chart\Category\ChartJsCategoryChartGenerator::year - */ - public function testYear() - { - $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); - $preference->data = 'en'; - $preference->save(); - - // mock language preference: - Preferences::shouldReceive('get')->withArgs(['language', 'en'])->andReturn($preference); - - // make a collection of stuff: - $collection = new Collection; - $categories = new Collection; - for ($i = 0; $i < 5; $i++) { - $categories->push(FactoryMuffin::create('FireflyIII\Models\Category')); - $collection->push([new Carbon, 100, 100, 100]); - } - - $data = $this->object->year($categories, $collection); - - $this->assertCount(5, $data['labels']); - $this->assertEquals($categories->first()->name, $data['labels'][0]); - $this->assertCount(3, $data['datasets'][0]['data']); - - - } -} \ No newline at end of file diff --git a/tests/generators/ChartJsPiggyBankChartGeneratorTest.php b/tests/generators/ChartJsPiggyBankChartGeneratorTest.php deleted file mode 100644 index e63b9d73fd..0000000000 --- a/tests/generators/ChartJsPiggyBankChartGeneratorTest.php +++ /dev/null @@ -1,66 +0,0 @@ -object = new ChartJsPiggyBankChartGenerator; - - } - - /** - * This method is called before the first test of this test class is run. - * - * @since Method available since Release 3.4.0 - */ - public static function setUpBeforeClass() - { - parent::setUpBeforeClass(); - } - - /** - * @covers FireflyIII\Generator\Chart\PiggyBank\ChartJsPiggyBankChartGenerator::history - */ - public function testHistory() - { - $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); - $preference->data = 'en'; - $preference->save(); - - // mock language preference: - Preferences::shouldReceive('get')->withArgs(['language', 'en'])->andReturn($preference); - - // create a set - $set = new Collection; - for ($i = 0; $i < 5; $i++) { - $obj = new stdClass; - $obj->date = new Carbon; - $obj->sum = 100; - $set->push($obj); - } - - $data = $this->object->history($set); - $this->assertCount(5, $data['labels']); - $this->assertCount(5, $data['datasets'][0]['data']); - $this->assertEquals(100, $data['datasets'][0]['data'][0]); - $this->assertEquals(500, $data['datasets'][0]['data'][4]); - - - } -} \ No newline at end of file diff --git a/tests/generators/ChartJsReportChartGeneratorTest.php b/tests/generators/ChartJsReportChartGeneratorTest.php deleted file mode 100644 index 4c41c23123..0000000000 --- a/tests/generators/ChartJsReportChartGeneratorTest.php +++ /dev/null @@ -1,80 +0,0 @@ -object = new ChartJsReportChartGenerator; - - } - - /** - * This method is called before the first test of this test class is run. - * - * @since Method available since Release 3.4.0 - */ - public static function setUpBeforeClass() - { - parent::setUpBeforeClass(); - } - - /** - * FireflyIII\Generator\Chart\Report\ChartJsReportChartGenerator::yearInOut - */ - public function testYearInOut() - { - $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); - $preference->data = 'en'; - $preference->save(); - - // mock language preference: - Preferences::shouldReceive('get')->withArgs(['language', 'en'])->andReturn($preference); - - // make set: - $collection = new Collection; - for ($i = 0; $i < 5; $i++) { - $collection->push([new Carbon, 200, 100]); - } - - $data = $this->object->yearInOut($collection); - - $this->assertEquals(200, $data['datasets'][0]['data'][0]); - $this->assertEquals(100, $data['datasets'][1]['data'][0]); - $this->assertCount(5, $data['labels']); - - } - - /** - * FireflyIII\Generator\Chart\Report\ChartJsReportChartGenerator::yearInOutSummarized - */ - public function testYearInOutSummarized() - { - // make set: - $income = 2400; - $expense = 1200; - - $data = $this->object->yearInOutSummarized($income, $expense, 12); - - $this->assertEquals(200, $data['datasets'][0]['data'][1]); - $this->assertEquals(100, $data['datasets'][1]['data'][1]); - - } -} \ No newline at end of file diff --git a/tests/generators/GoogleAccountChartGeneratorTest.php b/tests/generators/GoogleAccountChartGeneratorTest.php deleted file mode 100644 index 864034180b..0000000000 --- a/tests/generators/GoogleAccountChartGeneratorTest.php +++ /dev/null @@ -1,120 +0,0 @@ -object = new GoogleAccountChartGenerator; - - } - - /** - * This method is called before the first test of this test class is run. - * - * @since Method available since Release 3.4.0 - */ - public static function setUpBeforeClass() - { - parent::setUpBeforeClass(); - } - - /** - * @covers FireflyIII\Generator\Chart\Account\GoogleAccountChartGenerator::all - */ - public function testAll() - { - // be somebody - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // create some accounts: - $accounts = new Collection; - for ($i = 0; $i < 5; $i++) { - $accounts->push(FactoryMuffin::create('FireflyIII\Models\Account')); - } - - // data for call: - $start = Carbon::createFromDate(2015, 1, 1); - $end = Carbon::createFromDate(2015, 1, 15); - - // mock Steam::balance - Steam::shouldReceive('balance')->withAnyArgs()->andReturn(0); - - $data = $this->object->all($accounts, $start, $end); - $this->assertCount(11, $data['cols']); // accounts * 2 + date. - // fifteen days, - $this->assertCount(16, $data['rows']); // 15 + 1? - } - - /** - * @covers FireflyIII\Generator\Chart\Account\GoogleAccountChartGenerator::frontpage - */ - public function testFrontpage() - { - // be somebody - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // create some accounts: - $accounts = new Collection; - for ($i = 0; $i < 5; $i++) { - $accounts->push(FactoryMuffin::create('FireflyIII\Models\Account')); - } - - // data for call: - $start = Carbon::createFromDate(2015, 1, 1); - $end = Carbon::createFromDate(2015, 1, 15); - - // mock Steam::balance - Steam::shouldReceive('balance')->withAnyArgs()->andReturn(0); - - $data = $this->object->frontpage($accounts, $start, $end); - $this->assertCount(11, $data['cols']); // accounts * 2 + date. - // fifteen days, - $this->assertCount(16, $data['rows']); // 15 + 1? - } - - /** - * @covers FireflyIII\Generator\Chart\Account\GoogleAccountChartGenerator::single - */ - public function testSingle() - { - // be somebody - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - /** @var Account $account */ - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - - // data for call: - $start = Carbon::createFromDate(2015, 1, 1); - $end = Carbon::createFromDate(2015, 1, 15); - - // mock Steam::balance - Steam::shouldReceive('balance')->withAnyArgs()->andReturn(0); - - $data = $this->object->single($account, $start, $end); - $this->assertCount(3, $data['cols']); // account, date, certainty - // fifteen days, - $this->assertCount(15, $data['rows']); // 15 days - } - -} \ No newline at end of file diff --git a/tests/generators/GoogleBillChartGeneratorTest.php b/tests/generators/GoogleBillChartGeneratorTest.php deleted file mode 100644 index 5576098595..0000000000 --- a/tests/generators/GoogleBillChartGeneratorTest.php +++ /dev/null @@ -1,90 +0,0 @@ -object = new GoogleBillChartGenerator; - - } - - /** - * This method is called before the first test of this test class is run. - * - * @since Method available since Release 3.4.0 - */ - public static function setUpBeforeClass() - { - parent::setUpBeforeClass(); - } - - /** - * @covers FireflyIII\Generator\Chart\Bill\GoogleBillChartGenerator::frontpage - */ - public function testFrontpage() - { - // to test frontpage, we generate the exact fake entries - // needed: - $paid = new Collection; - for ($i = 0; $i < 5; $i++) { - $obj = new stdClass(); - $obj->description = 'Something'; - $obj->amount = 100; - $paid->push($obj); - } - - $unpaid = new Collection; - $sum = 0; - for ($i = 0; $i < 5; $i++) { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $date = new Carbon; - $sum += (($bill->amount_max + $bill->amount_min) / 2); - $unpaid->push([$bill, $date]); - } - - - $data = $this->object->frontpage($paid, $unpaid); - - $this->assertCount(2, $data['cols']); - $this->assertCount(2, $data['rows']); // two rows, two columns. - } - - /** - * @covers FireflyIII\Generator\Chart\Bill\GoogleBillChartGenerator::single - */ - public function testSingle() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $entries = new Collection; - for ($i = 0; $i < 5; $i++) { - $obj = new stdClass; - $obj->amount = 100; - $obj->date = new Carbon; - $entries->push($obj); - } - $data = $this->object->single($bill, $entries); - - $this->assertCount(5, $data['rows']); - $this->assertCount(4, $data['cols']); - $this->assertEquals(100, $data['rows'][0]['c'][3]['v']); - } -} \ No newline at end of file diff --git a/tests/generators/GoogleBudgetChartGeneratorTest.php b/tests/generators/GoogleBudgetChartGeneratorTest.php deleted file mode 100644 index 13b3cb54bc..0000000000 --- a/tests/generators/GoogleBudgetChartGeneratorTest.php +++ /dev/null @@ -1,99 +0,0 @@ -object = new GoogleBudgetChartGenerator(); - - } - - - /** - * This method is called before the first test of this test class is run. - * - * @since Method available since Release 3.4.0 - */ - public static function setUpBeforeClass() - { - parent::setUpBeforeClass(); - } - - - /** - * @covers FireflyIII\Generator\Chart\Budget\GoogleBudgetChartGenerator::budget - */ - public function testBudget() - { - // make a collection with some amounts in them. - $collection = new Collection; - for ($i = 0; $i < 5; $i++) { - $collection->push([new Carbon, 100]); - } - - $data = $this->object->budget($collection); - - $this->assertCount(5, $data['rows']); - $this->assertCount(2, $data['cols']); - $this->assertEquals(100, $data['rows'][0]['c'][1]['v']); - } - - /** - * @covers FireflyIII\Generator\Chart\Budget\GoogleBudgetChartGenerator::frontpage - */ - public function testFrontpage() - { - // make a collection with some amounts in them. - $collection = new Collection; - for ($i = 0; $i < 5; $i++) { - $collection->push(['Some label', 100, 200, 300]); - } - - $data = $this->object->frontpage($collection); - - $this->assertCount(5, $data['rows']); - $this->assertEquals(100, $data['rows'][0]['c'][1]['v']); - $this->assertEquals(200, $data['rows'][0]['c'][2]['v']); - $this->assertEquals(300, $data['rows'][0]['c'][3]['v']); - } - - /** - * @covers FireflyIII\Generator\Chart\Budget\GoogleBudgetChartGenerator::year - */ - public function testYear() - { - $budgets = new Collection; - $entries = new Collection; - - // make some budgets: - for ($i = 0; $i < 5; $i++) { - $budgets->push(FactoryMuffin::create('FireflyIII\Models\Budget')); - $entries->push([new Carbon, 100, 100, 100]); - } - - $data = $this->object->year($budgets, $entries); - - $this->assertCount(5, $data['rows']); - $this->assertCount(6, $data['cols']); - } -} \ No newline at end of file diff --git a/tests/generators/GoogleCategoryChartGeneratorTest.php b/tests/generators/GoogleCategoryChartGeneratorTest.php deleted file mode 100644 index 78f0ffde39..0000000000 --- a/tests/generators/GoogleCategoryChartGeneratorTest.php +++ /dev/null @@ -1,116 +0,0 @@ -object = new GoogleCategoryChartGenerator(); - - } - - /** - * This method is called before the first test of this test class is run. - * - * @since Method available since Release 3.4.0 - */ - public static function setUpBeforeClass() - { - parent::setUpBeforeClass(); - } - - - /** - * @covers FireflyIII\Generator\Chart\Category\GoogleCategoryChartGenerator::all - */ - public function testAll() - { - // make a collection of stuff: - $collection = new Collection; - for ($i = 0; $i < 5; $i++) { - $collection->push([new Carbon, 100]); - } - - $data = $this->object->all($collection); - - $this->assertCount(5, $data['rows']); - $this->assertCount(2, $data['cols']); - $this->assertEquals(100, $data['rows'][0]['c'][1]['v']); - } - - /** - * @covers FireflyIII\Generator\Chart\Category\GoogleCategoryChartGenerator::frontpage - */ - public function testFrontpage() - { - // make a collection of stuff: - $collection = new Collection; - for ($i = 0; $i < 5; $i++) { - $collection->push(['name' => 'Something', 'sum' => 100]); - } - - $data = $this->object->frontpage($collection); - - $this->assertCount(5, $data['rows']); - $this->assertCount(2, $data['cols']); - $this->assertEquals('Something', $data['rows'][0]['c'][0]['v']); - $this->assertEquals(100, $data['rows'][0]['c'][1]['v']); - - } - - /** - * @covers FireflyIII\Generator\Chart\Category\GoogleCategoryChartGenerator::month - */ - public function testMonth() - { - // make a collection of stuff: - $collection = new Collection; - for ($i = 0; $i < 5; $i++) { - $collection->push([new Carbon, 100]); - } - - $data = $this->object->month($collection); - - $this->assertCount(5, $data['rows']); - $this->assertCount(2, $data['cols']); - $this->assertEquals(100, $data['rows'][0]['c'][1]['v']); - } - - /** - * @covers FireflyIII\Generator\Chart\Category\GoogleCategoryChartGenerator::year - */ - public function testYear() - { - // make a collection of stuff: - $collection = new Collection; - $categories = new Collection; - for ($i = 0; $i < 5; $i++) { - $categories->push(FactoryMuffin::create('FireflyIII\Models\Category')); - $collection->push([new Carbon, 100, 100, 100]); - } - - $data = $this->object->year($categories, $collection); - - $this->assertCount(5, $data['rows']); - $this->assertEquals($categories->first()->name, $data['cols'][1]['label']); - $this->assertEquals(100, $data['rows'][0]['c'][1]['v']); - - } -} \ No newline at end of file diff --git a/tests/generators/GooglePiggyBankChartGeneratorTest.php b/tests/generators/GooglePiggyBankChartGeneratorTest.php deleted file mode 100644 index 7c1daf7a9f..0000000000 --- a/tests/generators/GooglePiggyBankChartGeneratorTest.php +++ /dev/null @@ -1,58 +0,0 @@ -object = new GooglePiggyBankChartGenerator(); - - } - - /** - * This method is called before the first test of this test class is run. - * - * @since Method available since Release 3.4.0 - */ - public static function setUpBeforeClass() - { - parent::setUpBeforeClass(); - } - - /** - * @covers FireflyIII\Generator\Chart\PiggyBank\GooglePiggyBankChartGenerator::history - */ - public function testHistory() - { - // create a set - $set = new Collection; - for ($i = 0; $i < 5; $i++) { - $obj = new stdClass; - $obj->date = new Carbon; - $obj->sum = 100; - $set->push($obj); - } - - $data = $this->object->history($set); - $this->assertCount(5, $data['rows']); - $this->assertCount(2, $data['cols']); - - $this->assertEquals(100, $data['rows'][0]['c'][1]['v']); - $this->assertEquals(500, $data['rows'][4]['c'][1]['v']); - } -} \ No newline at end of file diff --git a/tests/generators/GoogleReportChartGeneratorTest.php b/tests/generators/GoogleReportChartGeneratorTest.php deleted file mode 100644 index 57c715ad02..0000000000 --- a/tests/generators/GoogleReportChartGeneratorTest.php +++ /dev/null @@ -1,69 +0,0 @@ -object = new GoogleReportChartGenerator; - - } - - /** - * This method is called before the first test of this test class is run. - * - * @since Method available since Release 3.4.0 - */ - public static function setUpBeforeClass() - { - parent::setUpBeforeClass(); - } - - /** - * FireflyIII\Generator\Chart\Report\GoogleReportChartGenerator::yearInOut - */ - public function testYearInOut() - { - // make set: - $collection = new Collection; - for ($i = 0; $i < 5; $i++) { - $collection->push([new Carbon, 200, 100]); - } - - $data = $this->object->yearInOut($collection); - - $this->assertCount(5, $data['rows']); - - $this->assertEquals(200, $data['rows'][0]['c'][1]['v']); - $this->assertEquals(100, $data['rows'][0]['c'][2]['v']); - } - - /** - * FireflyIII\Generator\Chart\Report\GoogleReportChartGenerator::yearInOutSummarized - */ - public function testYearInOutSummarized() - { - // make set: - $income = 2400; - $expense = 1200; - - $data = $this->object->yearInOutSummarized($income, $expense, 12); - - $this->assertEquals(200, $data['rows'][1]['c'][1]['v']); - $this->assertEquals(100, $data['rows'][1]['c'][2]['v']); - } -} \ No newline at end of file diff --git a/tests/helpers/ConnectJournalToPiggyBankTest.php b/tests/helpers/ConnectJournalToPiggyBankTest.php deleted file mode 100644 index 09967aa788..0000000000 --- a/tests/helpers/ConnectJournalToPiggyBankTest.php +++ /dev/null @@ -1,139 +0,0 @@ -get('piggy_bank_id')))); - - /** - * Sets up the fixture, for example, opens a network connection. - * This method is called before a test is executed. - */ - public function setUp() - { - parent::setUp(); - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - public function tearDown() - { - parent::tearDown(); - } - - /** - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - * @covers FireflyIII\Handlers\Events\ConnectJournalToPiggyBank::handle - */ - public function testNoRepetition() - { - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - /** @var \FireflyIII\Models\PiggyBank $piggyBank */ - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account2 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account1->user_id = $user->id; - $account2->user_id = $user->id; - $piggyBank->account_id = $account1->id; - $account1->save(); - $account2->save(); - $piggyBank->save(); - - // because the event handler responds to this piggy bank, we must remove - // the piggy bank repetition: - /** @var \FireflyIII\Models\PiggyBankRepetition $rep */ - foreach ($piggyBank->piggyBankRepetitions()->get() as $rep) { - $rep->forceDelete(); - } - - - $event = new JournalCreated($journal, $piggyBank->id); - $class = new ConnectJournalToPiggyBank(); - $result = $class->handle($event); - - - $this->assertFalse($result); - } - - /** - * @covers FireflyIII\Handlers\Events\ConnectJournalToPiggyBank::handle - */ - public function testNoSuchPiggy() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $event = new JournalCreated($journal, 1); - $class = new ConnectJournalToPiggyBank(); - $result = $class->handle($event); - - - $this->assertFalse($result); - } - - /** - * @covers FireflyIII\Handlers\Events\ConnectJournalToPiggyBank::handle - */ - public function testWithRepetition() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // deposit - - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - - $journal->user_id = $user->id; - $journal->save(); - - // create piggy bank event to continue handler: - $start = clone $journal->date; - $end = clone $journal->date; - $start->subDay(); - $end->addDay(); - - PiggyBankRepetition::create( - [ - 'piggy_bank_id' => $piggyBank->id, - 'startdate' => $start->format('Y-m-d'), - 'targetdate' => $end->format('Y-m-d'), - 'currentamount' => 0, - ] - ); - - - /** @var Transaction $transaction */ - foreach ($journal->transactions()->get() as $transaction) { - if ($transaction->amount < 0) { - $piggyBank->account_id = $transaction->account_id; - $account = $transaction->account; - $account->user_id = $user->id; - $account->save(); - $piggyBank->account_id = $account->id; - $piggyBank->save(); - } - } - $event = new JournalCreated($journal, $piggyBank->id); - $class = new ConnectJournalToPiggyBank(); - $result = $class->handle($event); - - $this->assertTrue($result); - } -} diff --git a/tests/helpers/ReportHelperTest.php b/tests/helpers/ReportHelperTest.php deleted file mode 100644 index 91a3576d47..0000000000 --- a/tests/helpers/ReportHelperTest.php +++ /dev/null @@ -1,329 +0,0 @@ -object = new ReportHelper($query); - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - public function tearDown() - { - parent::tearDown(); - } - - /** - * @covers FireflyIII\Helpers\Report\ReportHelper::getAccountReport - */ - public function testGetAccountReport() - { - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - $asset = FactoryMuffin::create('FireflyIII\Models\AccountType'); - $cash = FactoryMuffin::create('FireflyIII\Models\AccountType'); - $user = FactoryMuffin::create('FireflyIII\User'); - for ($i = 0; $i < 5; $i++) { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $account->user_id = $user->id; - $account->account_type_id = $asset->id; - $account->save(); - - } - - $cashAccount = FactoryMuffin::create('FireflyIII\Models\Account'); - $cashAccount->user_id = $user->id; - $cashAccount->account_type_id = $cash->id; - $cashAccount->save(); - - $this->be($user); - /** @var AccountCollection $object */ - $object = $this->object->getAccountReport(Carbon::now()->startOfMonth(), Carbon::now()->endOfMonth(), false); - - $this->assertCount(5, $object->getAccounts()); - $this->assertEquals(0, $object->getDifference()); - $this->assertEquals(0, $object->getEnd()); - $this->assertEquals(0, $object->getStart()); - } - - /** - * @covers FireflyIII\Helpers\Report\ReportHelper::getBalanceReport - */ - public function testGetBalanceReport() - { - // factory! - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - $asset = FactoryMuffin::create('FireflyIII\Models\AccountType'); - $user = FactoryMuffin::create('FireflyIII\User'); - $rep = FactoryMuffin::create('FireflyIII\Models\LimitRepetition'); - for ($i = 0; $i < 5; $i++) { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $account->user_id = $user->id; - $account->account_type_id = $asset->id; - $account->save(); - } - - $set = new Collection; - for ($i = 0; $i < 5; $i++) { - $set->push(FactoryMuffin::create('FireflyIII\Models\Budget')); - } - - $this->be($user); - - // mock! - $budgetRepos = $this->mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - $tagRepos = $this->mock('FireflyIII\Repositories\Tag\TagRepositoryInterface'); - - // fake! - $budgetRepos->shouldReceive('getBudgets')->andReturn($set); - $budgetRepos->shouldReceive('getCurrentRepetition')->andReturn($rep); - $tagRepos->shouldReceive('coveredByBalancingActs')->andReturn(0); - - // test! - $object = $this->object->getBalanceReport(Carbon::now()->startOfMonth(), Carbon::now()->endOfMonth(), false); - $this->assertCount(8, $object->getBalanceLines()); - $this->assertCount(5, $object->getBalanceHeader()->getAccounts()); - } - - /** - * @covers FireflyIII\Helpers\Report\ReportHelper::getBillReport - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testGetBillReport() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // factory! - $set = new Collection; - $journals = new Collection; - FactoryMuffin::create('FireflyIII\Models\Account'); - FactoryMuffin::create('FireflyIII\Models\Account'); - for ($i = 0; $i < 5; $i++) { - $set->push(FactoryMuffin::create('FireflyIII\Models\Bill')); - } - - for ($i = 0; $i < 5; $i++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journals->push($journal); - } - - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Bill\BillRepositoryInterface'); - - // fake! - $repository->shouldReceive('getBills')->andReturn($set); - $repository->shouldReceive('getJournalsInRange')->withAnyArgs()->andReturn(new Collection, $journals); - - // test! - $object = $this->object->getBillReport(Carbon::now()->startOfMonth(), Carbon::now()->endOfMonth(), false); - $this->assertCount(5, $object->getBills()); - } - - /** - * @covers FireflyIII\Helpers\Report\ReportHelper::getBudgetReport - */ - public function testGetBudgetReport() - { - // factory! - $user = FactoryMuffin::create('FireflyIII\User'); - $set = new Collection; - $rep1 = new Collection; - $rep2 = new Collection; - for ($i = 0; $i < 5; $i++) { - $set->push(FactoryMuffin::create('FireflyIII\Models\Budget')); - } - for ($i = 0; $i < 5; $i++) { - $rep1->push(FactoryMuffin::create('FireflyIII\Models\LimitRepetition')); - } - - $this->be($user); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Budget\BudgetRepositoryInterface'); - - // fake! - $repository->shouldReceive('getBudgets')->andReturn($set); - $repository->shouldReceive('getBudgetLimitRepetitions')->andReturn($rep1, $rep2); - $repository->shouldReceive('spentInPeriodCorrected')->andReturn(rand(0, 100)); - $repository->shouldReceive('getWithoutBudgetSum')->andReturn(rand(0, 100)); - - // test! - $object = $this->object->getBudgetReport(Carbon::now()->startOfMonth(), Carbon::now()->endOfMonth(), false); - - $this->assertCount(10, $object->getBudgetLines()); - } - - /** - * @covers FireflyIII\Helpers\Report\ReportHelper::getCategoryReport - */ - public function testGetCategoryReport() - { - // factory! - $user = FactoryMuffin::create('FireflyIII\User'); - $set = new Collection; - for ($i = 0; $i < 5; $i++) { - $set->push(FactoryMuffin::create('FireflyIII\Models\Category')); - } - - $this->be($user); - - // mock! - $repository = $this->mock('FireflyIII\Repositories\Category\CategoryRepositoryInterface'); - - // fake! - $repository->shouldReceive('getCategories')->andReturn($set); - $repository->shouldReceive('spentInPeriodCorrected')->andReturn(rand(1, 100)); - - // test! - $object = $this->object->getCategoryReport(Carbon::now()->startOfMonth(), Carbon::now()->endOfMonth(), false); - $this->assertCount(5, $object->getCategories()); - } - - - /** - * @covers FireflyIII\Helpers\Report\ReportHelper::getExpenseReport - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testGetExpenseReport() - { - // factory! - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - $type = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - // create five journals in this month for the report: - $date = Carbon::now()->startOfMonth()->addDay(); - $asset = FactoryMuffin::create('FireflyIII\Models\AccountType'); - $left = FactoryMuffin::create('FireflyIII\Models\Account'); - $right = FactoryMuffin::create('FireflyIII\Models\Account'); - $left->account_type_id = $asset->id; - $right->account_type_id = $asset->id; - $right->save(); - $left->save(); - - // save meta for account: - AccountMeta::create( - [ - 'account_id' => $left->id, - 'name' => 'accountRole', - 'data' => 'defaultAsset' - ] - ); - AccountMeta::create( - [ - 'account_id' => $right->id, - 'name' => 'accountRole', - 'data' => 'defaultAsset' - ] - ); - - - for ($i = 0; $i < 5; $i++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->date = $date; - $journal->transaction_type_id = $type->id; - $journal->user_id = $user->id; - $journal->save(); - } - - // test! - $object = $this->object->getExpenseReport(Carbon::now()->startOfMonth(), Carbon::now()->endOfMonth(), true); - $this->assertCount(5, $object->getExpenses()); - } - - /** - * @covers FireflyIII\Helpers\Report\ReportHelper::getIncomeReport - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testGetIncomeReport() - { - // factory! - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $type = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - // create five journals in this month for the report: - $date = Carbon::now()->startOfMonth()->addDay(); - $left = FactoryMuffin::create('FireflyIII\Models\Account'); - $right = FactoryMuffin::create('FireflyIII\Models\Account'); - $asset = FactoryMuffin::create('FireflyIII\Models\AccountType'); - $left->account_type_id = $asset->id; - $right->account_type_id = $asset->id; - - // save meta for account: - AccountMeta::create( - [ - 'account_id' => $left->id, - 'name' => 'accountRole', - 'data' => 'defaultAsset' - ] - ); - AccountMeta::create( - [ - 'account_id' => $right->id, - 'name' => 'accountRole', - 'data' => 'defaultAsset' - ] - ); - - $right->save(); - $left->save(); - for ($i = 0; $i < 5; $i++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->date = $date; - $journal->transaction_type_id = $type->id; - $journal->user_id = $user->id; - $journal->save(); - } - - // test! - $object = $this->object->getIncomeReport(Carbon::now()->startOfMonth(), Carbon::now()->endOfMonth(), true); - $this->assertCount(5, $object->getIncomes()); - - } - - /** - * @covers FireflyIII\Helpers\Report\ReportHelper::listOfMonths - */ - public function testListOfMonths() - { - // start of year up until now - $date = new Carbon('2015-01-01'); - $now = new Carbon; - $diff = $now->diffInMonths($date) + 1; // the month itself. - $result = $this->object->listOfMonths($date); - - $this->assertCount($diff, $result[2015]); - - } - -} diff --git a/tests/helpers/ReportQueryTest.php b/tests/helpers/ReportQueryTest.php deleted file mode 100644 index a7451c5319..0000000000 --- a/tests/helpers/ReportQueryTest.php +++ /dev/null @@ -1,397 +0,0 @@ -object = new ReportQuery; - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - public function tearDown() - { - parent::tearDown(); - } - - - /** - * @covers FireflyIII\Helpers\Report\ReportQuery::expenseInPeriodCorrected - * @covers FireflyIII\Helpers\Report\ReportQuery::queryJournalsWithTransactions - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testExpenseInPeriodCorrected() - { - $start = new Carbon('2015-01-01'); - $end = new Carbon('2015-02-01'); - - $user = FactoryMuffin::create('FireflyIII\User'); - $type = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - $expense = FactoryMuffin::create('FireflyIII\Models\AccountType'); - $asset = FactoryMuffin::create('FireflyIII\Models\AccountType'); - - $date = new Carbon('2015-01-12'); - - for ($i = 0; $i < 10; $i++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->date = $date; - $journal->user_id = $user->id; - $journal->transaction_type_id = $type->id; - $journal->save(); - - // two transactions: - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account2 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account1->account_type_id = $asset->id; - $account1->user_id = $user->id; - $account2->account_type_id = $expense->id; - $account2->user_id = $user->id; - $account1->save(); - $account2->save(); - - AccountMeta::create( - [ - 'account_id' => $account1->id, - 'name' => 'accountRole', - 'data' => 'defaultAsset' - ] - ); - - $amount = 100; - if ($i == 8) { - $amount = 0; // at least one "empty" journal. - } - - // update both transactions - $journal->transactions[0]->account_id = $account1->id; - $journal->transactions[0]->amount = $amount * -1; - $journal->transactions[0]->save(); - - $journal->transactions[1]->account_id = $account2->id; - $journal->transactions[1]->amount = $amount; - $journal->transactions[1]->save(); - - - } - $this->be($user); - - - $set = $this->object->expenseInPeriodCorrected($start, $end, false); - - - $this->assertCount(9, $set); - } - - /** - * @covers FireflyIII\Helpers\Report\ReportQuery::expenseInPeriodCorrected - * @covers FireflyIII\Helpers\Report\ReportQuery::queryJournalsWithTransactions - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testExpenseInPeriodCorrectedShared() - { - $start = new Carbon('2015-01-01'); - $end = new Carbon('2015-02-01'); - - $user = FactoryMuffin::create('FireflyIII\User'); - $type = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - $expense = FactoryMuffin::create('FireflyIII\Models\AccountType'); - $asset = FactoryMuffin::create('FireflyIII\Models\AccountType'); - - $date = new Carbon('2015-01-12'); - - for ($i = 0; $i < 10; $i++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->date = $date; - $journal->user_id = $user->id; - $journal->transaction_type_id = $type->id; - $journal->save(); - - // two transactions: - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account2 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account1->account_type_id = $asset->id; - $account1->user_id = $user->id; - $account2->account_type_id = $expense->id; - $account2->user_id = $user->id; - $account1->save(); - $account2->save(); - - AccountMeta::create( - [ - 'account_id' => $account1->id, - 'name' => 'accountRole', - 'data' => 'defaultAsset' - ] - ); - - $amount = 100; - if ($i == 8) { - $amount = 0; // at least one "empty" journal. - } - - // update both transactions - $journal->transactions[0]->account_id = $account1->id; - $journal->transactions[0]->amount = $amount * -1; - $journal->transactions[0]->save(); - - $journal->transactions[1]->account_id = $account2->id; - $journal->transactions[1]->amount = $amount; - $journal->transactions[1]->save(); - - } - $this->be($user); - - $set = $this->object->expenseInPeriodCorrected($start, $end, true); - - $this->assertCount(9, $set); - } - - /** - * @covers FireflyIII\Helpers\Report\ReportQuery::getAllAccounts - */ - public function testGetAllAccounts() - { - $start = new Carbon('2015-01-01'); - $end = new Carbon('2015-02-01'); - $user = FactoryMuffin::create('FireflyIII\User'); - FactoryMuffin::create('FireflyIII\Models\Account'); - FactoryMuffin::create('FireflyIII\Models\Account'); - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); - - for ($i = 0; $i < 10; $i++) { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $account->account_type_id = $asset->id; - $account->user_id = $user->id; - $account->save(); - } - - Steam::shouldReceive('balance')->andReturn(0); - - $this->be($user); - - $set = $this->object->getAllAccounts($start, $end, false); - $this->assertCount(10, $set); - } - - /** - * @covers FireflyIII\Helpers\Report\ReportQuery::getAllAccounts - */ - public function testGetAllAccountsShared() - { - $start = new Carbon('2015-01-01'); - $end = new Carbon('2015-02-01'); - $user = FactoryMuffin::create('FireflyIII\User'); - FactoryMuffin::create('FireflyIII\Models\Account'); - FactoryMuffin::create('FireflyIII\Models\Account'); - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); - - for ($i = 0; $i < 10; $i++) { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $account->account_type_id = $asset->id; - $account->user_id = $user->id; - $account->save(); - } - - Steam::shouldReceive('balance')->andReturn(0); - - $this->be($user); - - $set = $this->object->getAllAccounts($start, $end, true); - $this->assertCount(10, $set); - } - - /** - * @covers FireflyIII\Helpers\Report\ReportQuery::incomeInPeriodCorrected - * @covers FireflyIII\Helpers\Report\ReportQuery::queryJournalsWithTransactions - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testIncomeInPeriodCorrected() - { - $start = new Carbon('2015-01-01'); - $end = new Carbon('2015-02-01'); - - $user = FactoryMuffin::create('FireflyIII\User'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $type = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - $expense = FactoryMuffin::create('FireflyIII\Models\AccountType'); - $asset = FactoryMuffin::create('FireflyIII\Models\AccountType'); - - $date = new Carbon('2015-01-12'); - - for ($i = 0; $i < 10; $i++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->date = $date; - $journal->user_id = $user->id; - $journal->transaction_type_id = $type->id; - $journal->save(); - - // two transactions: - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account2 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account1->account_type_id = $asset->id; - $account1->user_id = $user->id; - $account2->account_type_id = $expense->id; - $account2->user_id = $user->id; - $account1->save(); - $account2->save(); - - AccountMeta::create( - [ - 'account_id' => $account1->id, - 'name' => 'accountRole', - 'data' => 'defaultAsset' - ] - ); - - $amount = 100; - if ($i == 8) { - $amount = 0; // at least one "empty" journal. - } - - // update both transactions - $journal->transactions[0]->account_id = $account1->id; - $journal->transactions[0]->amount = $amount; - $journal->transactions[0]->save(); - - $journal->transactions[1]->account_id = $account2->id; - $journal->transactions[1]->amount = $amount * -1; - $journal->transactions[1]->save(); - - } - $this->be($user); - - $set = $this->object->incomeInPeriodCorrected($start, $end, false); - - $this->assertCount(9, $set); - } - - /** - * @covers FireflyIII\Helpers\Report\ReportQuery::incomeInPeriodCorrected - * @covers FireflyIII\Helpers\Report\ReportQuery::queryJournalsWithTransactions - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testIncomeInPeriodCorrectedShared() - { - $start = new Carbon('2015-01-01'); - $end = new Carbon('2015-02-01'); - - $user = FactoryMuffin::create('FireflyIII\User'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $type = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - $expense = FactoryMuffin::create('FireflyIII\Models\AccountType'); - $asset = FactoryMuffin::create('FireflyIII\Models\AccountType'); - - $date = new Carbon('2015-01-12'); - - for ($i = 0; $i < 10; $i++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->date = $date; - $journal->user_id = $user->id; - $journal->transaction_type_id = $type->id; - $journal->save(); - - // two transactions: - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account2 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account1->account_type_id = $asset->id; - $account1->user_id = $user->id; - $account2->account_type_id = $expense->id; - $account2->user_id = $user->id; - $account1->save(); - $account2->save(); - - AccountMeta::create( - [ - 'account_id' => $account1->id, - 'name' => 'accountRole', - 'data' => 'defaultAsset' - ] - ); - - $amount = 100; - if ($i == 8) { - $amount = 0; // at least one "empty" journal. - } - - // update both transactions - $journal->transactions[0]->account_id = $account1->id; - $journal->transactions[0]->amount = $amount * -1; - $journal->transactions[0]->save(); - - $journal->transactions[1]->account_id = $account2->id; - $journal->transactions[1]->amount = $amount; - $journal->transactions[1]->save(); - - } - $this->be($user); - - $set = $this->object->incomeInPeriodCorrected($start, $end, true); - - $this->assertCount(9, $set); - } - - /** - * @covers FireflyIII\Helpers\Report\ReportQuery::spentInBudgetCorrected - */ - public function testSpentInBudgetCorrected() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $account->user_id = $user->id; - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $budget->user_id = $user->id; - - $account->save(); - $budget->save(); - - $this->be($user); - - $result = $this->object->spentInBudgetCorrected($account, $budget, new Carbon, new Carbon); - $this->assertEquals(0, $result); - - } - - /** - * @covers FireflyIII\Helpers\Report\ReportQuery::spentNoBudget - */ - public function testSpentNoBudget() - { - - $user = FactoryMuffin::create('FireflyIII\User'); - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $account->user_id = $user->id; - - $account->save(); - - $this->be($user); - - $result = $this->object->spentNoBudget($account, new Carbon, new Carbon); - $this->assertEquals(0, $result); - } - -} diff --git a/tests/models/AccountModelTest.php b/tests/models/AccountModelTest.php deleted file mode 100644 index 662a2a73a2..0000000000 --- a/tests/models/AccountModelTest.php +++ /dev/null @@ -1,162 +0,0 @@ - $account->name, - 'account_type_id' => $account->account_type_id, - 'user_id' => $account->user_id - ]; - - $result = Account::firstOrCreateEncrypted($search); - - // should be the same account: - - $this->assertEquals($account->id, $result->id); - - } - - /** - * @covers FireflyIII\Models\Account::firstOrCreateEncrypted - */ - public function testFirstOrCreateEncryptedNew() - { - // create account: - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - FactoryMuffin::create('FireflyIII\User'); - - // search for account with the same properties: - $search = [ - 'name' => 'Some new account', - 'account_type_id' => $account->account_type_id, - 'user_id' => $account->user_id, - 'active' => 1, - ]; - - $result = Account::firstOrCreateEncrypted($search); - - // should not be the same account: - - $this->assertNotEquals($account->id, $result->id); - - - } - - /** - * @covers FireflyIII\Models\Account::firstOrNullEncrypted - */ - public function testFirstOrNullEncrypted() - { - // create account: - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - - - // search for account with the same properties: - $search = [ - 'name' => $account->name, - 'account_type_id' => $account->account_type_id, - 'user_id' => $account->user_id - ]; - - $result = Account::firstOrNullEncrypted($search); - - // should be the same account: - - $this->assertEquals($account->id, $result->id); - } - - /** - * @covers FireflyIII\Models\Account::firstOrNullEncrypted - */ - public function testFirstOrNullEncryptedNew() - { - // create account: - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - FactoryMuffin::create('FireflyIII\User'); - - // search for account with the same properties: - $search = [ - 'name' => 'Some new account', - 'account_type_id' => $account->account_type_id, - 'user_id' => $account->user_id, - 'active' => 1, - ]; - - $result = Account::firstOrNullEncrypted($search); - - // should not be the same account: - - $this->assertNull($result); - - - } - - /** - * @covers FireflyIII\Models\Account::getNameForEditformAttribute - */ - public function testGetNameForEditformAttribute() - { - // normal name is normal - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $this->assertEquals($account->name, $account->getNameForEditformAttribute()); - } - /** - * @covers FireflyIII\Models\Account::getNameForEditformAttribute - */ - public function testGetNameForEditformAttributeCash() - { - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - // cash name is empty - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $this->assertEquals('', $account->getNameForEditformAttribute()); - } - -} diff --git a/tests/models/CategoryModelTest.php b/tests/models/CategoryModelTest.php deleted file mode 100644 index c4abe4cfb5..0000000000 --- a/tests/models/CategoryModelTest.php +++ /dev/null @@ -1,76 +0,0 @@ - $category->name, - 'user_id' => $category->user_id - ]; - - $result = Category::firstOrCreateEncrypted($search); - - $this->assertEquals($result->id, $category->id); - } - - /** - * @covers FireflyIII\Models\Category::firstOrCreateEncrypted - */ - public function testFirstOrCreateEncryptedNew() - { - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - - $search = [ - 'name' => 'Some category name', - 'user_id' => $category->user_id - ]; - - $result = Category::firstOrCreateEncrypted($search); - - $this->assertNotEquals($result->id, $category->id); - } - -} diff --git a/tests/models/TagModelTest.php b/tests/models/TagModelTest.php deleted file mode 100644 index b4411d1eb1..0000000000 --- a/tests/models/TagModelTest.php +++ /dev/null @@ -1,95 +0,0 @@ - 'something', - 'tag' => $tag->tag, - 'user_id' => $tag->user_id, - ]; - - $result = Tag::firstOrCreateEncrypted($search); - - $this->assertEquals($tag->id, $result->id); - } - - /** - * @covers FireflyIII\Models\Tag::firstOrCreateEncrypted - */ - public function testFirstOrCreateEncryptedNew() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - - $search = [ - 'tagMode' => 'something', - 'tag' => 'Something else', - 'user_id' => $tag->user_id, - ]; - - $result = Tag::firstOrCreateEncrypted($search); - - $this->assertNotEquals($tag->id, $result->id); - } - - /** - * @covers FireflyIII\Models\Tag::save - */ - public function testSave() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - // connect some transaction journals to the tag: - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->tags()->save($tag); - $tag->save(); - $journal = TransactionJournal::find($journal->id); - - $this->assertEquals(1, $journal->tag_count); - - - } - -} diff --git a/tests/models/TransactionJournalModelTest.php b/tests/models/TransactionJournalModelTest.php deleted file mode 100644 index 17d8646557..0000000000 --- a/tests/models/TransactionJournalModelTest.php +++ /dev/null @@ -1,636 +0,0 @@ -transactions[0]->amount = '123.45'; - $journal->transactions[0]->save(); - $journal->transactions[1]->amount = '-123.45'; - $journal->transactions[1]->save(); - - $amount = $journal->actual_amount; - $this->assertEquals('123.45', $amount); - } - - /** - * Journal has one tag. - * - * @covers FireflyIII\Models\TransactionJournal::getAmountAttribute - * @covers FireflyIII\Models\TransactionJournal::amountByTag - * @covers FireflyIII\Models\TransactionJournal::save - * @covers FireflyIII\Models\TransactionJournal::amountByTags - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testGetAmountAttributeAdvancePayment() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - // make types: - $withdrawalType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $depositType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - // make tag - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->tagMode = 'advancePayment'; - $tag->save(); - - // make withdrawal - $withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $withdrawal->transaction_type_id = $withdrawalType->id; - $withdrawal->save(); - - // make deposit - $deposit = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $deposit->transaction_type_id = $depositType->id; - $deposit->save(); - - // make accounts - $expense = FactoryMuffin::create('FireflyIII\Models\Account'); - $revenue = FactoryMuffin::create('FireflyIII\Models\Account'); - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); - - // transactions are already in place, update them: - $withdrawal->transactions[0]->account_id = $asset->id; - $withdrawal->transactions[0]->amount = -300; - $withdrawal->transactions[0]->save(); - - $withdrawal->transactions[1]->account_id = $expense->id; - $withdrawal->transactions[1]->amount = 300; - $withdrawal->transactions[1]->save(); - - $deposit->transactions[0]->account_id = $revenue->id; - $deposit->transactions[0]->amount = -89.88; - $deposit->transactions[0]->save(); - - $deposit->transactions[1]->account_id = $asset->id; - $deposit->transactions[1]->amount = 89.88; - $deposit->transactions[1]->save(); - - // connect to tag: - $tag->transactionJournals()->save($withdrawal); - $tag->transactionJournals()->save($deposit); - - $withdrawal->save(); - $deposit->save(); - $withdrawal = TransactionJournal::find($withdrawal->id); - $deposit = TransactionJournal::find($deposit->id); - - // amount should be 210.12: - $this->assertEquals('210.12', $withdrawal->amount); - $this->assertEquals('0', $deposit->amount); - - - } - - - /** - * Journal has one tag. - * - * @covers FireflyIII\Models\TransactionJournal::getAmountAttribute - * @covers FireflyIII\Models\TransactionJournal::amountByTag - * @covers FireflyIII\Models\TransactionJournal::amountByTags - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testGetAmountAttributeBalancingAct() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // make types: - $withdrawalType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $transferType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - // make a tag - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->tagMode = 'balancingAct'; - $tag->save(); - - // make a withdrawal and a transfer - $withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $withdrawal->transaction_type_id = $withdrawalType->id; - $withdrawal->save(); - - $transfer = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $transfer->transaction_type_id = $transferType->id; - $transfer->save(); - - // connect to tag: - $tag->transactionJournals()->save($withdrawal); - $tag->transactionJournals()->save($transfer); - - // make accounts: - $expense = FactoryMuffin::create('FireflyIII\Models\Account'); - $revenue = FactoryMuffin::create('FireflyIII\Models\Account'); - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); - $revenue->account_type_id = $asset->account_type_id; - $revenue->save(); - - // transactions are already in place, update them: - $withdrawal->transactions[0]->account_id = $asset->id; - $withdrawal->transactions[0]->amount = -123.45; - $withdrawal->transactions[0]->save(); - - $withdrawal->transactions[1]->account_id = $expense->id; - $withdrawal->transactions[1]->amount = 123.45; - $withdrawal->transactions[1]->save(); - - $transfer->transactions[0]->account_id = $revenue->id; - $transfer->transactions[0]->amount = -123.45; - $transfer->transactions[0]->save(); - - $transfer->transactions[1]->account_id = $asset->id; - $transfer->transactions[1]->amount = 123.45; - $transfer->transactions[1]->save(); - - $withdrawal->save(); - - $withdrawal = TransactionJournal::find($withdrawal->id); - - $amount = $withdrawal->amount; - - - $this->assertEquals('0', $amount); - } - - /** - * Journal has no tags. - * - * @covers FireflyIII\Models\TransactionJournal::getAmountAttribute - * @covers FireflyIII\Models\TransactionJournal::amountByTag - * @covers FireflyIII\Models\TransactionJournal::amountByTags - */ - public function testGetAmountAttributeNoTags() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - - $journal->transactions[0]->amount = 123.45; - $journal->transactions[0]->save(); - - $journal->transactions[1]->amount = -123.45; - $journal->transactions[1]->save(); - - $amount = $journal->amount; - $this->assertEquals('123.45', $amount); - } - - /** - * - * Journal has one tag. - * - * @covers FireflyIII\Models\TransactionJournal::getAmountAttribute - * @covers FireflyIII\Models\TransactionJournal::amountByTag - * @covers FireflyIII\Models\TransactionJournal::amountByTags - */ - public function testGetAmountAttributeTag() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // has a normal tag, but nothing special. - // make tag - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->tagMode = 'nothing'; - $tag->save(); - - // make withdrawal - $withdrawalType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $withdrawal->transaction_type_id = $withdrawalType->id; - $withdrawal->save(); - - // make accounts - $expense = FactoryMuffin::create('FireflyIII\Models\Account'); - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); - - $withdrawal->transactions[0]->amount = -300; - $withdrawal->transactions[0]->account_id = $asset->id; - $withdrawal->transactions[0]->save(); - - $withdrawal->transactions[1]->amount = 300; - $withdrawal->transactions[1]->account_id = $expense->id; - $withdrawal->transactions[1]->save(); - - // connect to tag: - $tag->transactionJournals()->save($withdrawal); - - $withdrawal->save(); - $withdrawal = TransactionJournal::find($withdrawal->id); - - $this->assertEquals('300', $withdrawal->amount); - - - } - - /** - * Journal has multiple tags, withdrawal. All default tag. - * - * @covers FireflyIII\Models\TransactionJournal::getAmountAttribute - * @covers FireflyIII\Models\TransactionJournal::amountByTag - * @covers FireflyIII\Models\TransactionJournal::amountByTags - */ - public function testGetAmountAttributeTags() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // has two normal tags: - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->tagMode = 'nothing'; - $tag->save(); - $tag2 = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag2->tagMode = 'nothing'; - $tag2->save(); - - // make withdrawal - $withdrawalType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $withdrawal->transaction_type_id = $withdrawalType->id; - $withdrawal->save(); - - // make accounts - $expense = FactoryMuffin::create('FireflyIII\Models\Account'); - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); - - $withdrawal->transactions[0]->amount = -300; - $withdrawal->transactions[0]->account_id = $asset->id; - $withdrawal->transactions[0]->save(); - - $withdrawal->transactions[1]->amount = 300; - $withdrawal->transactions[1]->account_id = $expense->id; - $withdrawal->transactions[1]->save(); - - // connect to tag: - $tag->transactionJournals()->save($withdrawal); - $tag2->transactionJournals()->save($withdrawal); - - // grab withdrawal again to update tag count: - $withdrawal->save(); - $withdrawal = TransactionJournal::find($withdrawal->id); - - $this->assertEquals('300', $withdrawal->amount); - - - } - - /** - * Multiple tags, transfer, and one is a balancing act - * - * @covers FireflyIII\Models\TransactionJournal::getAmountAttribute - * @covers FireflyIII\Models\TransactionJournal::amountByTag - * @covers FireflyIII\Models\TransactionJournal::amountByTags - */ - public function testGetAmountAttributeTagsTransfer() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // has two normal tags: - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->tagMode = 'balancingAct'; - $tag->save(); - $tag2 = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag2->tagMode = 'nothing'; - $tag2->save(); - - // make withdrawal - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $transferType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $transfer = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $transfer->transaction_type_id = $transferType->id; - $transfer->save(); - - // make accounts - $expense = FactoryMuffin::create('FireflyIII\Models\Account'); - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); - - $transfer->transactions[0]->amount = -300; - $transfer->transactions[0]->account_id = $asset->id; - $transfer->transactions[0]->save(); - - $transfer->transactions[1]->amount = 300; - $transfer->transactions[1]->account_id = $expense->id; - $transfer->transactions[1]->save(); - - // connect to tag: - $tag->transactionJournals()->save($transfer); - $tag2->transactionJournals()->save($transfer); - - $transfer->save(); - $transfer = TransactionJournal::find($transfer->id); - - $this->assertEquals('300', $transfer->amount); - - - } - - /** - * Multiple tags, transfer, and one is a advance payment. - * - * @covers FireflyIII\Models\TransactionJournal::getAmountAttribute - * @covers FireflyIII\Models\TransactionJournal::amountByTag - * @covers FireflyIII\Models\TransactionJournal::amountByTags - */ - public function testGetAmountAttributeTagsTransferAdvance() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // has two normal tags: - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->tagMode = 'advancePayment'; - $tag->save(); - $tag2 = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag2->tagMode = 'nothing'; - $tag2->save(); - - // make withdrawal - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $transferType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $transfer = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $transfer->transaction_type_id = $transferType->id; - $transfer->save(); - - // make accounts - $expense = FactoryMuffin::create('FireflyIII\Models\Account'); - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); - - $transfer->transactions[0]->amount = -300; - $transfer->transactions[0]->account_id = $asset->id; - $transfer->transactions[0]->save(); - - $transfer->transactions[1]->amount = 300; - $transfer->transactions[1]->account_id = $expense->id; - $transfer->transactions[1]->save(); - - // connect to tag: - $tag->transactionJournals()->save($transfer); - $tag2->transactionJournals()->save($transfer); - - $transfer->save(); - $transfer = TransactionJournal::find($transfer->id); - - $this->assertEquals('300', $transfer->amount); - - - } - - /** - * Multiple tags, withdrawal, and one is a balancingAct. - * - * @covers FireflyIII\Models\TransactionJournal::getAmountAttribute - * @covers FireflyIII\Models\TransactionJournal::amountByTag - * @covers FireflyIII\Models\TransactionJournal::amountByTags - */ - public function testGetAmountAttributeTagsWithdrawalAdvance() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // has two normal tags: - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->tagMode = 'balancingAct'; - $tag->save(); - $tag2 = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag2->tagMode = 'nothing'; - $tag2->save(); - - // make withdrawal - $withdrawalType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $withdrawal->transaction_type_id = $withdrawalType->id; - $withdrawal->save(); - - // make accounts - $expense = FactoryMuffin::create('FireflyIII\Models\Account'); - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); - - $withdrawal->transactions[0]->amount = -300; - $withdrawal->transactions[0]->account_id = $asset->id; - $withdrawal->transactions[0]->save(); - - $withdrawal->transactions[1]->amount = 300; - $withdrawal->transactions[1]->account_id = $expense->id; - $withdrawal->transactions[1]->save(); - - // connect to tag: - $tag->transactionJournals()->save($withdrawal); - $tag2->transactionJournals()->save($withdrawal); - - $withdrawal->save(); - $withdrawal = TransactionJournal::find($withdrawal->id); - - $this->assertEquals('300', $withdrawal->amount); - - - } - - - /** - * @covers FireflyIII\Models\TransactionJournal::getCorrectAmountAttribute - */ - public function testGetCorrectAmountAttribute() - { - $withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal - - // make accounts - FactoryMuffin::create('FireflyIII\Models\Account'); - $revenue = FactoryMuffin::create('FireflyIII\Models\Account'); - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); - - // make withdrawal - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->transaction_type_id = $withdrawal->id; - $journal->save(); - - $journal->transactions[0]->account_id = $asset->id; - $journal->transactions[0]->amount = 300; - $journal->transactions[0]->save(); - - $journal->transactions[1]->account_id = $revenue->id; - $journal->transactions[1]->amount = -300; - $journal->transactions[1]->save(); - - // get asset account: - $result = $journal->correct_amount; - - $this->assertEquals(-300, $result); - } - - /** - * @covers FireflyIII\Models\TransactionJournal::getCorrectAmountAttribute - */ - public function testGetCorrectAmountAttributeDeposit() - { - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal - $deposit = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // deposit - - // make accounts - FactoryMuffin::create('FireflyIII\Models\Account'); - $revenue = FactoryMuffin::create('FireflyIII\Models\Account'); - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); - - // make withdrawal - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->transaction_type_id = $deposit->id; - $journal->save(); - - $journal->transactions[0]->account_id = $asset->id; - $journal->transactions[0]->amount = 300; - $journal->transactions[0]->save(); - - $journal->transactions[1]->account_id = $revenue->id; - $journal->transactions[1]->amount = -300; - $journal->transactions[1]->save(); - - // get asset account: - $result = $journal->correct_amount; - - $this->assertEquals(300, $result); - } - - /** - * @covers FireflyIII\Models\TransactionJournal::getCorrectAmountAttribute - */ - public function testGetCorrectAmountAttributeTransfer() - { - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // deposit - $transfer = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // transfer - - // make accounts - FactoryMuffin::create('FireflyIII\Models\Account'); - $revenue = FactoryMuffin::create('FireflyIII\Models\Account'); - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); - - // make withdrawal - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->transaction_type_id = $transfer->id; - $journal->save(); - - $journal->transactions[0]->account_id = $asset->id; - $journal->transactions[0]->amount = 300; - $journal->transactions[0]->save(); - - $journal->transactions[1]->account_id = $revenue->id; - $journal->transactions[1]->amount = -300; - $journal->transactions[1]->save(); - - // get asset account: - $result = $journal->correct_amount; - - $this->assertEquals('300', $result); - } - - /** - * @covers FireflyIII\Models\TransactionJournal::getDestinationAccountAttribute - */ - public function testGetDestinationAccountAttribute() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $depositType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $deposit = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $deposit->transaction_type_id = $depositType->id; - $deposit->save(); - - // make accounts - FactoryMuffin::create('FireflyIII\Models\Account'); - $revenue = FactoryMuffin::create('FireflyIII\Models\Account'); - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); - - $deposit->transactions[0]->account_id = $asset->id; - $deposit->transactions[0]->amount = 300; - $deposit->transactions[0]->save(); - - $deposit->transactions[1]->account_id = $revenue->id; - $deposit->transactions[1]->amount = -300; - $deposit->transactions[1]->save(); - - // get asset account: - $result = $deposit->destination_account; - - $this->assertEquals($asset->id, $result->id); - } - - /** - * @covers FireflyIII\Models\TransactionJournal::getSourceAccountAttribute - */ - public function testGetSourceAccountAttribute() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $depositType = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $deposit = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $deposit->transaction_type_id = $depositType->id; - $deposit->save(); - - // make accounts - FactoryMuffin::create('FireflyIII\Models\Account'); - $revenue = FactoryMuffin::create('FireflyIII\Models\Account'); - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); - - $deposit->transactions[0]->account_id = $asset->id; - $deposit->transactions[0]->amount = 300; - $deposit->transactions[0]->save(); - - $deposit->transactions[1]->account_id = $revenue->id; - $deposit->transactions[1]->amount = -300; - $deposit->transactions[1]->save(); - - // get asset account: - $result = $deposit->source_account; - - $this->assertEquals($revenue->id, $result->id); - } - -} diff --git a/tests/repositories/AccountRepositoryTest.php b/tests/repositories/AccountRepositoryTest.php deleted file mode 100644 index 6a17b5d564..0000000000 --- a/tests/repositories/AccountRepositoryTest.php +++ /dev/null @@ -1,891 +0,0 @@ -object = new AccountRepository; - parent::setUp(); - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - public function tearDown() - { - parent::tearDown(); - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::countAccounts - */ - public function testCountAccounts() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $type = $account->accountType->type; - $this->be($account->user); - - $this->assertEquals(1, $this->object->countAccounts([$type])); - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::destroy - * @covers FireflyIII\Providers\EventServiceProvider::boot - * @covers FireflyIII\Providers\EventServiceProvider::registerDeleteEvents - */ - public function testDestroy() - { - // create account: - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - - // create some transactions and attach them to the account: - for ($i = 0; $i < 5; $i++) { - $transaction = FactoryMuffin::create('FireflyIII\Models\Transaction'); - $transaction->account_id = $account->id; - $transaction->save(); - } - - $accountId = $account->id; - $this->be($account->user); - - - $this->object->destroy($account); - - // cannot find account: - $this->assertCount(0, Account::whereId($accountId)->whereNotNull('deleted_at')->get()); - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::getAccounts - */ - public function testGetAccounts() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $type = $account->accountType->type; - $this->be($account->user); - - $this->assertCount(1, $this->object->getAccounts([$type])); - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::getCreditCards - */ - public function testGetCreditCards() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - - // create account meta object: - $meta = new AccountMeta; - $meta->name = 'accountRole'; - $meta->data = 'ccAsset'; - $meta->account_id = $account->id; - $meta->save(); - - // meta account type - $meta = new AccountMeta; - $meta->name = 'ccType'; - $meta->data = 'monthlyFull'; - $meta->account_id = $account->id; - $meta->save(); - - // login - $this->be($account->user); - - // test! - $this->assertCount(1, $this->object->getCreditCards()); - - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::getFirstTransaction - */ - public function testGetFirstTransaction() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $first = $journal->transactions()->orderBy('date', 'DESC')->first(); - $first->account_id = $account->id; - $first->save(); - - - // login - $this->be($account->user); - - $oldest = $this->object->getFirstTransaction($journal, $account); - - $this->assertEquals($first->amount, $oldest->amount); - $this->assertEquals($first->id, $oldest->id); - - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::getFrontpageAccounts - */ - public function testGetFrontpageAccounts() - { - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - - - // making two account types is kind of cheating but it works. - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - /** @var Preference $preference */ - $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); - $preference->data = []; - $preference->save(); - $this->be($account->user); - - $set = $this->object->getFrontpageAccounts($preference); - - $this->assertEquals($account->id, $set->first()->id); - - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::getFrontpageAccounts - */ - public function testGetFrontpageAccountsWithPreference() - { - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - - - // making two account types is kind of cheating but it works. - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - /** @var Preference $preference */ - $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); - $preference->data = [$account->id]; - $preference->save(); - $this->be($account->user); - - $set = $this->object->getFrontpageAccounts($preference); - - $this->assertEquals($account->id, $set->first()->id); - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::getFrontpageTransactions - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testGetFrontpageTransactions() - { - // three journals - /** @var Account $account */ - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $journal1 = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal2 = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal3 = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - - // three dates (one is out of bounds) - $journal1->date = new Carbon('2012-01-02'); - $journal1->user_id = $account->user_id; - $journal2->date = new Carbon('2012-01-09'); - $journal2->user_id = $account->user_id; - $journal3->date = new Carbon('2012-02-02'); - $journal3->user_id = $account->user_id; - - // save all - $journal1->save(); - $journal2->save(); - $journal3->save(); - - $journal1->transactions[0]->account_id = $account->id; - $journal1->transactions[0]->save(); - $journal2->transactions[0]->account_id = $account->id; - $journal2->transactions[0]->save(); - $journal3->transactions[0]->account_id = $account->id; - $journal3->transactions[0]->save(); - - // be user - $this->be($journal1->user); - - // get set: - - $set = $this->object->getFrontpageTransactions($account, new Carbon('2012-01-01'), new Carbon('2012-01-31')); - - // should have two left. - $this->assertCount(2, $set); - - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::getJournals - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testGetJournals() - { - $date = new Carbon; - // three journals - /** @var Account $account */ - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $journal1 = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal2 = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal3 = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - - // three dates (one is out of bounds) - $journal1->date = $date; - $journal1->user_id = $account->user_id; - $journal2->date = $date; - $journal2->user_id = $account->user_id; - $journal3->date = $date; - $journal3->user_id = $account->user_id; - - // save all - $journal1->save(); - $journal2->save(); - $journal3->save(); - - $journal1->transactions[0]->account_id = $account->id; - $journal1->transactions[0]->save(); - $journal2->transactions[0]->account_id = $account->id; - $journal2->transactions[0]->save(); - $journal3->transactions[0]->account_id = $account->id; - $journal3->transactions[0]->save(); - - // be user - $this->be($journal1->user); - - // get paginator: - /** @var LengthAwarePaginator $paginator */ - $paginator = $this->object->getJournals($account, 1); - - // should have three entries: - $this->assertEquals(3, $paginator->count()); - $this->assertEquals(1, $paginator->currentPage()); - $this->assertFalse($paginator->isEmpty()); - - - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::getLastActivity - */ - public function testGetLastActivity() - { - $date = new Carbon('2012-02-02'); - // one journal - /** @var Account $account */ - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->date = $date; - $journal->user_id = $account->user_id; - $journal->save(); - - $journal->transactions[0]->account_id = $account->id; - $journal->transactions[0]->save(); - - // be user - $this->be($journal->user); - - $latest = $this->object->getLastActivity($account); - $this->assertEquals($date->format('Y-m-d'), $latest->format('Y-m-d')); - - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::getLastActivity - */ - public function testGetLastActivityNoActivity() - { - /** @var Account $account */ - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $this->be($account->user); - - $latest = $this->object->getLastActivity($account); - $this->assertnull($latest); - - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::getPiggyBankAccounts - */ - public function testGetPiggyBankAccounts() - { - $date = Carbon::now()->startOfMonth()->addDays(3); - /* - * Quite the collection of objects for this one. - */ - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $piggyBankRepetition = $piggyBank->piggybankRepetitions()->first(); - /* - * Update id's to match each other: - */ - $piggyBankRepetition->currentamount = rand(1, 100); - $piggyBankRepetition->startdate = $date; - $piggyBankRepetition->targetdate = $date; - $piggyBank->account_id = $account->id; - $piggyBankRepetition->save(); - $piggyBank->save(); - - /* - * Put dates in session: - */ - $this->session(['start' => Carbon::now()->startOfMonth(), 'end' => Carbon::now()->endOfMonth()]); - - /* - * Run method: - */ - $this->be($account->user); - $collection = $this->object->getPiggyBankAccounts(); - - $this->assertCount(1, $collection); - $this->assertEquals($collection->first()->id, $account->id); - $this->assertEquals($collection->first()->piggyBalance, $piggyBankRepetition->currentamount); - $this->assertEquals(0, $collection->first()->startBalance); - $this->assertEquals(0, $collection->first()->endBalance); - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::getSavingsAccounts - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testGetSavingsAccounts() - { - // create three accounts: - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - $type = FactoryMuffin::create('FireflyIII\Models\AccountType'); - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account1->account_type_id = $type->id; - $account2 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account2->account_type_id = $type->id; - $account3 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account3->account_type_id = $type->id; - - // make them savings accounts: - $meta = new AccountMeta; - $meta->name = 'accountRole'; - $meta->data = 'savingAsset'; - $meta->account_id = $account1->id; - $meta->save(); - - $meta = new AccountMeta; - $meta->name = 'accountRole'; - $meta->data = 'savingAsset'; - $meta->account_id = $account2->id; - $meta->save(); - - $meta = new AccountMeta; - $meta->name = 'accountRole'; - $meta->data = 'savingAsset'; - $meta->account_id = $account3->id; - $meta->save(); - - // assign to the same user: - $account2->user_id = $account1->user_id; - $account3->user_id = $account1->user_id; - $account1->save(); - $account2->save(); - $account3->save(); - $this->be($account1->user); - - // mock steam balance: - Steam::shouldReceive('balance')->andReturn(0, 0, 1, 2, 4, 3); - - // get the result from the method: - $result = $this->object->getSavingsAccounts(); - - $this->assertEquals(0, $result->get(0)->difference); - $this->assertEquals(1, $result->get(1)->difference); - $this->assertEquals(-1, $result->get(2)->difference); - - $this->assertEquals(100, $result->get(0)->percentage); - $this->assertEquals(100, $result->get(1)->percentage); - $this->assertEquals(25, $result->get(2)->percentage); - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::getTransfersInRange - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testGetTransfersInRange() - { - FactoryMuffin::create('FireflyIII\Models\Account'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // deposit - FactoryMuffin::create('FireflyIII\Models\AccountType'); // expense - FactoryMuffin::create('FireflyIII\Models\AccountType'); // revenue - $asset = FactoryMuffin::create('FireflyIII\Models\AccountType'); // asset - $transfer = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // transfer - $user = FactoryMuffin::create('FireflyIII\User'); // user! - $accounts = []; - $opposings = []; // opposing accounts. - $journals = []; - // dates - $start = new Carbon('2014-01-01'); - $end = new Carbon('2014-01-31'); - $inRange = new Carbon('2014-01-15'); - $before = new Carbon('2013-01-15'); - - // create two accounts: - for ($i = 0; $i < 2; $i++) { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $account->account_type_id = $asset->id; - $account->user_id = $user->id; - $account->save(); - $accounts[] = $account; - - $opposing = FactoryMuffin::create('FireflyIII\Models\Account'); - $opposing->account_type_id = $asset->id; - $opposing->user_id = $user->id; - $opposing->save(); - $opposings[] = $opposing; - } - - // for each account, create ten journals - foreach ($accounts as $index => $account) { - for ($i = 0; $i < 10; $i++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->user_id = $user->id; - $journal->transaction_type_id = $transfer->id; - $journal->save(); - - // if $i < 6, transfer is in range: - if ($i < 6) { - $journal->date = $inRange; - } else { - $journal->date = $before; - } - - /* - * Transfers can go either way (see the amount) - */ - if ($i < 4) { - $amount = 100; - } else { - $amount = -100; - } - - - $journal->transactions[0]->account_id = $account->id; - $journal->transactions[0]->amount = $amount; - $journal->transactions[1]->account_id = $opposings[$index]->id; - $journal->transactions[1]->amount = $amount * -1; - $journal->transactions[0]->save(); - $journal->transactions[1]->save(); - // save journal: - $journal->save(); - $journals[] = $journal; - } - } - $this->be($user); - - $set = $this->object->getTransfersInRange($accounts[0], $start, $end); - - $this->assertEquals(4, $set->count()); - $this->assertEquals(100, $set->first()->amount); - $this->assertEquals($journals[0]->description, $set->first()->description); - - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::leftOnAccount - */ - public function testLeftOnAccount() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $piggyBankRepetition = $piggyBank->piggybankRepetitions()->first(); - $piggyBankRepetition->currentamount = rand(1, 100); - $piggyBankRepetition->save(); - $this->be($piggyBank->account->user); - - - $result = $this->object->leftOnAccount($piggyBank->account, new Carbon); - - $this->assertEquals($piggyBankRepetition->currentamount * -1, $result); - - - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::openingBalanceTransaction - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testOpeningBalanceTransaction() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $journal1 = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal2 = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - - // dates - $one = new Carbon('2013-01-15'); - $two = new Carbon('2015-01-15'); - - // journal 1 will match: - $journal1->date = $one; - $journal1->user_id = $account->user_id; - $journal2->date = $two; - $journal2->user_id = $account->user_id; - - // add account things: - $journal1->transactions[0]->account_id = $account->id; - $journal1->transactions[1]->account_id = $account->id; - $journal2->transactions[0]->account_id = $account->id; - $journal2->transactions[1]->account_id = $account->id; - $journal1->transactions[0]->save(); - $journal1->transactions[1]->save(); - $journal2->transactions[0]->save(); - $journal2->transactions[1]->save(); - - - $journal1->save(); - $journal2->save(); - - - $this->be($account->user); - - $result = $this->object->openingBalanceTransaction($account); - $this->assertEquals($journal1->id, $result->id); - $this->assertEquals($journal1->description, $result->description); - $this->assertEquals(100, $result->amount); - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::openingBalanceTransaction - */ - public function testOpeningBalanceTransactionNull() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $this->be($account->user); - - $result = $this->object->openingBalanceTransaction($account); - $this->assertNull($result); - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::store - * @covers FireflyIII\Repositories\Account\AccountRepository::storeAccount - * @covers FireflyIII\Repositories\Account\AccountRepository::storeMetadata - * @covers FireflyIII\Repositories\Account\AccountRepository::storeInitialBalance - * - */ - public function testStore() - { - $user = FactoryMuffin::create('FireflyIII\User'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $this->be($user); - - $data = [ - 'accountType' => 'expense', - 'user' => $user->id, - 'name' => 'Test account #' . rand(1, 100), - 'active' => true, - 'accountRole' => 'testAccount', - 'openingBalance' => 100, - 'virtualBalance' => 0, - 'openingBalanceCurrency' => $currency->id, - 'openingBalanceDate' => '2015-01-01', - ]; - - - $account = $this->object->store($data); - - $this->assertEquals($data['name'], $account->name); - - } - - /** - * This function should give a big fat error, but it doesnt. - * - * @covers FireflyIII\Repositories\Account\AccountRepository::store - * @covers FireflyIII\Repositories\Account\AccountRepository::storeAccount - * @covers FireflyIII\Repositories\Account\AccountRepository::storeMetadata - * @covers FireflyIII\Repositories\Account\AccountRepository::storeInitialBalance - */ - public function testStoreWithExistingAccount() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); // expense - FactoryMuffin::create('FireflyIII\Models\AccountType'); // revenue - FactoryMuffin::create('FireflyIII\Models\AccountType'); // asset - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // deposit - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // transfer - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $this->be($account->user); - - - $data = [ - 'accountType' => 'expense', - 'user' => $account->user->id, - 'name' => $account->name, - 'active' => $account->active, - 'accountRole' => 'testAccount', - 'openingBalance' => 0, - 'virtualBalance' => 0, - 'openingBalanceCurrency' => $currency->id, - 'openingBalanceDate' => '2015-01-01', - ]; - - $newAccount = $this->object->store($data); - - $this->assertEquals($account->name, $newAccount->name); - $this->assertEquals($account->id, $newAccount->id); - - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::store - * @covers FireflyIII\Repositories\Account\AccountRepository::storeAccount - * @covers FireflyIII\Repositories\Account\AccountRepository::storeMetadata - * @covers FireflyIII\Repositories\Account\AccountRepository::storeInitialBalance - * @expectedException Symfony\Component\HttpKernel\Exception\HttpException - */ - public function testStoreWithInvalidAccountData() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $this->be($account->user); - - - $data = [ - 'accountType' => 'expense', - 'user' => $account->user->id + 12, - 'name' => $account->name, - 'active' => $account->active, - 'accountRole' => 'testAccount', - 'openingBalance' => 0, - 'virtualBalance' => 0, - 'openingBalanceCurrency' => $currency->id, - 'openingBalanceDate' => '2015-01-01', - ]; - - $this->object->store($data); - - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::store - * @covers FireflyIII\Repositories\Account\AccountRepository::storeAccount - * @covers FireflyIII\Repositories\Account\AccountRepository::storeMetadata - * @covers FireflyIII\Repositories\Account\AccountRepository::storeInitialBalance - */ - public function testStoreWithNegativeInitialBalance() - { - $user = FactoryMuffin::create('FireflyIII\User'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $this->be($user); - - $data = [ - 'accountType' => 'expense', - 'user' => $user->id, - 'name' => 'Test account #' . rand(1, 100), - 'active' => true, - 'accountRole' => 'testAccount', - 'openingBalance' => -100, - 'virtualBalance' => 0, - 'openingBalanceCurrency' => $currency->id, - 'openingBalanceDate' => '2015-01-01', - ]; - - - $account = $this->object->store($data); - - $this->assertEquals($data['name'], $account->name); - $this->assertEquals(-100, $account->transactions()->first()->amount); - - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::sumOfEverything - */ - public function testSumOfEverything() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $this->assertEquals(0, $this->object->sumOfEverything()); - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::update - * @covers FireflyIII\Repositories\Account\AccountRepository::updateMetadata - * @covers FireflyIII\Repositories\Account\AccountRepository::updateInitialBalance - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testUpdate() - { - $user = FactoryMuffin::create('FireflyIII\User'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $this->be($user); - - $data = [ - 'accountType' => 'expense', - 'user' => $user->id, - 'name' => 'Test account #' . rand(1, 100), - 'active' => true, - 'accountRole' => 'testAccount', - 'openingBalance' => 100, - 'virtualBalance' => 0, - 'openingBalanceCurrency' => $currency->id, - 'openingBalanceDate' => '2015-01-01', - ]; - - - $account = $this->object->store($data); - - // now update that same account: - $data = [ - 'name' => 'New account name' . rand(0, 100), - 'active' => 1, - 'virtualBalance' => 0, - 'openingBalance' => 50, - 'openingBalanceCurrency' => $currency->id, - 'openingBalanceDate' => '2015-02-02', - ]; - - $newAccount = $this->object->update($account, $data); - - $this->assertEquals($data['name'], $newAccount->name); - $this->assertEquals(50, $account->transactions()->first()->amount); - - - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::update - * @covers FireflyIII\Repositories\Account\AccountRepository::updateMetadata - * @covers FireflyIII\Repositories\Account\AccountRepository::updateInitialBalance - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testUpdateDeleteOpeningBalance() - { - $user = FactoryMuffin::create('FireflyIII\User'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $this->be($user); - - $data = [ - 'accountType' => 'expense', - 'user' => $user->id, - 'name' => 'Test account #' . rand(1, 100), - 'active' => true, - 'accountRole' => 'testAccount', - 'openingBalance' => 100, - 'virtualBalance' => 0, - 'openingBalanceCurrency' => $currency->id, - 'openingBalanceDate' => '2015-01-01', - ]; - - - $account = $this->object->store($data); - - // now update that same account: - $data = [ - 'name' => 'New account name' . rand(0, 100), - 'active' => 1, - 'user' => $user->id, - 'accountRole' => 'testAccount', - 'virtualBalance' => 0, - 'openingBalance' => 0, - ]; - - $newAccount = $this->object->update($account, $data); - - $this->assertEquals($data['name'], $newAccount->name); - $this->assertEquals(0, $newAccount->transactions()->whereNull('deleted_at')->count()); - - - } - - /** - * @covers FireflyIII\Repositories\Account\AccountRepository::update - * @covers FireflyIII\Repositories\Account\AccountRepository::updateMetadata - * @covers FireflyIII\Repositories\Account\AccountRepository::updateInitialBalance - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testUpdateNewOpeningBalance() - { - $user = FactoryMuffin::create('FireflyIII\User'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $this->be($user); - - $data = [ - 'accountType' => 'expense', - 'user' => $user->id, - 'name' => 'Test account #' . rand(1, 100), - 'active' => true, - 'accountRole' => 'testAccount', - 'openingBalance' => 0, - 'virtualBalance' => 0, - ]; - - - $account = $this->object->store($data); - - // now update that same account: - $data = [ - 'name' => 'New account name' . rand(0, 100), - 'active' => 1, - 'user' => $user->id, - 'virtualBalance' => 0, - 'accountRole' => 'testAccount', - 'ccMonthlyPaymentDate' => '2015-01-01', - 'openingBalance' => 51, - 'openingBalanceCurrency' => $currency->id, - 'openingBalanceDate' => '2015-02-02', - ]; - - $newAccount = $this->object->update($account, $data); - - $this->assertEquals($data['name'], $newAccount->name); - $this->assertEquals(51, $account->transactions()->first()->amount); - - - } -} diff --git a/tests/repositories/BillRepositoryTest.php b/tests/repositories/BillRepositoryTest.php deleted file mode 100644 index 36356391f5..0000000000 --- a/tests/repositories/BillRepositoryTest.php +++ /dev/null @@ -1,467 +0,0 @@ -object = new BillRepository; - parent::setUp(); - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - public function tearDown() - { - parent::tearDown(); - } - - public function testBillPaymentsInRange() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $start = Carbon::now()->startOfMonth(); - $end = Carbon::now()->endOfMonth(); - - // payment: - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->date = $start; - $journal->bill_id = $bill->id; - $journal->save(); - - - $this->object->billPaymentsInRange($bill, $start, $end); - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::createFakeBill - */ - public function testCreateFakeBill() - { - $description = 'Fake bill ' . rand(10, 100); - $date = new Carbon('2013-01-01'); - $amount = 1200; - $bill = $this->object->createFakeBill($description, $date, $amount); - - $this->assertEquals($amount, $bill->amount_max); - $this->assertEquals($amount, $bill->amount_min); - $this->assertNull($bill->id); - $this->assertEquals($description, $bill->name); - - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::destroy - */ - public function testDestroy() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $accountId = $bill->id; - $this->object->destroy($bill); - - // cannot find bill: - $this->assertCount(0, Bill::whereId($accountId)->whereNotNull('deleted_at')->get()); - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::getActiveBills - */ - public function testGetActiveBills() - { - $bill1 = FactoryMuffin::create('FireflyIII\Models\Bill'); - $bill2 = FactoryMuffin::create('FireflyIII\Models\Bill'); - - // update bills - $bill1->active = 1; - $bill2->active = 0; - $bill2->user_id = $bill1->user_id; - $bill1->save(); - $bill2->save(); - $this->be($bill1->user); - - $set = $this->object->getActiveBills(); - - $this->assertCount(1, $set); - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::getBills - */ - public function testGetBills() - { - $bill1 = FactoryMuffin::create('FireflyIII\Models\Bill'); - $bill2 = FactoryMuffin::create('FireflyIII\Models\Bill'); - - // update bills - $bill1->active = 1; - $bill2->active = 0; - $bill2->user_id = $bill1->user_id; - $bill1->save(); - $bill2->save(); - $this->be($bill1->user); - - $set = $this->object->getBills(); - - $this->assertCount(2, $set); - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::getJournals - */ - public function testGetJournals() - { - $bill1 = FactoryMuffin::create('FireflyIII\Models\Bill'); - - // update bills - $bill1->active = 1; - $bill1->save(); - $this->be($bill1->user); - - $set = $this->object->getJournals($bill1); - - $this->assertCount(0, $set); - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::getJournalsInRange - */ - public function testGetJournalsInRange() - { - $bill1 = FactoryMuffin::create('FireflyIII\Models\Bill'); - - // update bills - $bill1->active = 1; - $bill1->save(); - $this->be($bill1->user); - - $set = $this->object->getJournalsInRange($bill1, new Carbon, new Carbon); - - $this->assertCount(0, $set); - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::getPossiblyRelatedJournals - */ - public function testGetPossiblyRelatedJournals() - { - $bill1 = FactoryMuffin::create('FireflyIII\Models\Bill'); - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - $bill1->amount_min = 100; - $bill1->amount_max = 1000; - $account->user_id = $bill1->user_id; - $bill1->save(); - $account->save(); - - // create some transactions to match our bill: - for ($i = 0; $i < 8; $i++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->user_id = $bill1->user_id; - $journal->save(); - $journal->transactions[0]->account_id = $account->id; - $journal->transactions[0]->save(); - } - $this->be($bill1->user); - - $set = $this->object->getPossiblyRelatedJournals($bill1); - $this->assertCount(8, $set); - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::getRanges - */ - public function testGetRanges() - { - $bill1 = FactoryMuffin::create('FireflyIII\Models\Bill'); - $bill1->date = new Carbon('2012-01-01'); - $bill1->repeat_freq = 'monthly'; - $bill1->save(); - - $set = $this->object->getRanges($bill1, new Carbon('2012-01-01'), new Carbon('2012-12-31')); - - $this->assertCount(12, $set); - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::lastFoundMatch - */ - public function testLastFoundMatch() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->bill_id = $bill->id; - $journal->user_id = $bill->user_id; - $journal->save(); - - $this->be($bill->user); - - $date = $this->object->lastFoundMatch($bill); - - $this->assertEquals($journal->date->format('Y-m-d'), $date->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::lastFoundMatch - */ - public function testLastFoundMatchNull() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - - $this->be($bill->user); - - $date = $this->object->lastFoundMatch($bill); - - $this->assertNull($date); - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::nextExpectedMatch - */ - public function testNextExpectedMatch() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $bill->date = new Carbon('2012-01-07'); - $bill->repeat_freq = 'monthly'; - $bill->save(); - $this->be($bill->user); - - // journal: - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->date = Carbon::now()->format('Y-m-d'); - $journal->user_id = $bill->user_id; - $journal->bill_id = $bill->id; - $journal->save(); - - $next = $this->object->nextExpectedMatch($bill); - $today = Carbon::now()->endOfMonth()->addDay(); - $this->assertEquals($today->format('Y-m-d'), $next->format('Y-m-d')); - - - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::nextExpectedMatch - */ - public function testNextExpectedMatchInactive() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $bill->active = 0; - $bill->save(); - $this->be($bill->user); - - $this->assertNull($this->object->nextExpectedMatch($bill)); - - - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::nextExpectedMatch - */ - public function testNextExpectedMatchNoJournals() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $bill->date = new Carbon('2012-01-07'); - $bill->repeat_freq = 'monthly'; - $bill->save(); - - $this->be($bill->user); - - $next = $this->object->nextExpectedMatch($bill); - $today = Carbon::now()->startOfMonth(); - $this->assertEquals($today->format('Y-m-d'), $next->format('Y-m-d')); - - - } - - - /** - * One - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - * - * @covers FireflyIII\Repositories\Bill\BillRepository::scan - * @covers FireflyIII\Repositories\Bill\BillRepository::doWordMatch - * @covers FireflyIII\Repositories\Bill\BillRepository::doAmountMatch - */ - public function testScanMatch() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $bill->date = new Carbon('2012-01-07'); - $bill->repeat_freq = 'monthly'; - $bill->match = 'jemoeder'; - $bill->amount_min = 90; - $bill->amount_max = 110; - $bill->save(); - $this->be($bill->user); - - // journal: - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->date = Carbon::now()->format('Y-m-d'); - $journal->description = 'jemoeder'; - $journal->user_id = $bill->user_id; - $journal->save(); - - $this->object->scan($bill, $journal); - $newJournal = TransactionJournal::find($journal->id); - - $this->assertEquals($bill->id, $newJournal->bill_id); - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::scan - * @covers FireflyIII\Repositories\Bill\BillRepository::doWordMatch - * @covers FireflyIII\Repositories\Bill\BillRepository::doAmountMatch - */ - public function testScanNoMatch() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $bill->date = new Carbon('2012-01-07'); - $bill->repeat_freq = 'monthly'; - $bill->save(); - $this->be($bill->user); - - // journal: - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->date = Carbon::now()->format('Y-m-d'); - $journal->user_id = $bill->user_id; - $journal->save(); - - // two transactions: - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account2 = FactoryMuffin::create('FireflyIII\Models\Account'); - Transaction::create( - [ - 'account_id' => $account1->id, - 'transaction_journal_id' => $journal->id, - 'amount' => 100, - ] - ); - Transaction::create( - [ - 'account_id' => $account2->id, - 'transaction_journal_id' => $journal->id, - 'amount' => 100, - ] - ); - - $this->object->scan($bill, $journal); - $newJournal = TransactionJournal::find($journal->id); - - $this->assertNull($newJournal->bill_id); - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::scan - * @covers FireflyIII\Repositories\Bill\BillRepository::doWordMatch - * @covers FireflyIII\Repositories\Bill\BillRepository::doAmountMatch - */ - public function testScanNoMatchButAttached() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $bill->date = new Carbon('2012-01-07'); - $bill->match = 'blablabla'; - $bill->repeat_freq = 'monthly'; - $bill->save(); - $this->be($bill->user); - - // journal: - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->date = Carbon::now()->format('Y-m-d'); - $journal->user_id = $bill->user_id; - $journal->bill_id = $bill->id; - $journal->save(); - - // two transactions: - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account2 = FactoryMuffin::create('FireflyIII\Models\Account'); - Transaction::create( - [ - 'account_id' => $account1->id, - 'transaction_journal_id' => $journal->id, - 'amount' => 100, - ] - ); - Transaction::create( - [ - 'account_id' => $account2->id, - 'transaction_journal_id' => $journal->id, - 'amount' => 100, - ] - ); - - $this->object->scan($bill, $journal); - $newJournal = TransactionJournal::find($journal->id); - - $this->assertNull($newJournal->bill_id); - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::store - */ - public function testStore() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $data = [ - 'name' => 'Something', - 'match' => 'Something', - 'amount_min' => 100, - 'user' => $user->id, - 'amount_max' => 110, - 'date' => new Carbon, - 'repeat_freq' => 'monthly', - 'skip' => 0, - 'automatch' => 1, - 'active' => 1, - - ]; - $bill = $this->object->store($data); - - $this->assertEquals($data['name'], $bill->name); - } - - /** - * @covers FireflyIII\Repositories\Bill\BillRepository::update - */ - public function testUpdate() - { - $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); - $data = [ - 'name' => 'new Name', - 'match' => $bill->match, - 'amount_min' => 100, - 'amount_max' => 110, - 'date' => new Carbon, - 'repeat_freq' => 'monthly', - 'skip' => 0, - 'automatch' => 1, - 'active' => 1, - - ]; - $newBill = $this->object->update($bill, $data); - - $this->assertEquals($data['name'], $newBill->name); - $this->assertEquals($bill->match, $newBill->match); - } -} diff --git a/tests/repositories/BudgetRepositoryTest.php b/tests/repositories/BudgetRepositoryTest.php deleted file mode 100644 index f172274f1e..0000000000 --- a/tests/repositories/BudgetRepositoryTest.php +++ /dev/null @@ -1,399 +0,0 @@ -object = new BudgetRepository; - parent::setUp(); - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - public function tearDown() - { - parent::tearDown(); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::cleanupBudgets - * @covers FireflyIII\Providers\EventServiceProvider::boot - */ - public function testCleanupBudgets() - { - // create some budgets: - for ($i = 0; $i < 3; $i++) { - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $limit = FactoryMuffin::create('FireflyIII\Models\BudgetLimit'); - $limit->budget_id = $budget->id; - $limit->amount = 0; - $limit->save(); - } - - - $this->object->cleanupBudgets(); - - $this->assertCount(0, BudgetLimit::get()); - - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::destroy - */ - public function testDestroy() - { - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - - $this->object->destroy($budget); - - $this->assertCount(0, Budget::where('id', $budget->id)->whereNull('deleted_at')->get()); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::expensesOnDayCorrected - */ - public function testExpensesOnDayCorrected() - { - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - - $result = $this->object->expensesOnDayCorrected($budget, new Carbon); - - $this->assertEquals(0, $result); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::getActiveBudgets - */ - public function testGetActiveBudgets() - { - $budget1 = FactoryMuffin::create('FireflyIII\Models\Budget'); - $budget2 = FactoryMuffin::create('FireflyIII\Models\Budget'); - $budget1->active = 1; - $budget2->active = 0; - $budget2->user_id = $budget1->user_id; - $budget1->save(); - $budget2->save(); - $this->be($budget1->user); - - $set = $this->object->getActiveBudgets(); - - $this->assertCount(1, $set); - $this->assertEquals($set->first()->id, $budget1->id); - - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::getBudgetLimitRepetitions - */ - public function testGetBudgetLimitRepetitions() - { - $rep = FactoryMuffin::create('FireflyIII\Models\LimitRepetition'); - $limit = $rep->budgetlimit; - $limit->startdate = new Carbon('2015-02-02'); - $rep->startdate = new Carbon('2015-02-02'); - $rep->enddate = new Carbon('2015-02-28'); - $limit->save(); - $rep->save(); - - $set = $this->object->getBudgetLimitRepetitions($rep->budgetlimit->budget, new Carbon('2015-02-01'), new Carbon('2015-02-28')); - $this->assertCount(2, $set); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::getBudgetLimits - */ - public function testGetBudgetLimits() - { - /** @var Budget $budget */ - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $set = $this->object->getBudgetLimits($budget); - - $this->assertCount(0, $set); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::getBudgets - */ - public function testGetBudgets() - { - $budget1 = FactoryMuffin::create('FireflyIII\Models\Budget'); - $budget2 = FactoryMuffin::create('FireflyIII\Models\Budget'); - $budget1->active = 1; - $budget2->active = 0; - $budget2->user_id = $budget1->user_id; - $budget1->save(); - $budget2->save(); - $this->be($budget1->user); - - $set = $this->object->getBudgets(); - - $this->assertCount(2, $set); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::getCurrentRepetition - */ - public function testGetCurrentRepetition() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - /** @var Budget $budget */ - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $rep = $this->object->getCurrentRepetition($budget, new Carbon); - $this->assertNull($rep); - - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::getFirstBudgetLimitDate - */ - public function testGetFirstBudgetLimitDate() - { - /** @var BudgetLimit $budget */ - $limit = FactoryMuffin::create('FireflyIII\Models\BudgetLimit'); - $date = $this->object->getFirstBudgetLimitDate($limit->budget); - $this->assertEquals($date->format('Y-m-d'), $limit->startdate->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::getFirstBudgetLimitDate - */ - public function testGetFirstBudgetLimitDateNull() - { - /** @var Budget $budget */ - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $date = $this->object->getFirstBudgetLimitDate($budget); - $ownDate = Carbon::now()->startOfYear(); - $this->assertEquals($date->format('Y-m-d'), $ownDate->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::getInactiveBudgets - */ - public function testGetInactiveBudgets() - { - $budget1 = FactoryMuffin::create('FireflyIII\Models\Budget'); - $budget2 = FactoryMuffin::create('FireflyIII\Models\Budget'); - $budget1->active = 1; - $budget2->active = 0; - $budget2->user_id = $budget1->user_id; - $budget1->save(); - $budget2->save(); - $this->be($budget1->user); - - $set = $this->object->getInactiveBudgets(); - - $this->assertCount(1, $set); - $this->assertEquals($set->first()->id, $budget2->id); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::getJournals - */ - public function testGetJournals() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $repetition = FactoryMuffin::create('FireflyIII\Models\LimitRepetition'); - - $set = $this->object->getJournals($repetition->budgetlimit->budget, $repetition); - $this->assertTrue($set instanceof LengthAwarePaginator); - $this->assertCount(0, $set); - $this->assertEquals(1, $set->currentPage()); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::getLastBudgetLimitDate - */ - public function testGetLastBudgetLimitDate() - { - /** @var BudgetLimit $budget */ - $limit = FactoryMuffin::create('FireflyIII\Models\BudgetLimit'); - $date = $this->object->getLastBudgetLimitDate($limit->budget); - $this->assertEquals($date->format('Y-m-d'), $limit->startdate->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::getLastBudgetLimitDate - */ - public function testGetLastBudgetLimitDateNull() - { - - /** @var Budget $budget */ - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $date = $this->object->getLastBudgetLimitDate($budget); - $ownDate = Carbon::now()->startOfYear(); - $this->assertEquals($date->format('Y-m-d'), $ownDate->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::getLimitAmountOnDate - */ - public function testGetLimitAmountOnDate() - { - $rep = FactoryMuffin::create('FireflyIII\Models\LimitRepetition'); - - $amount = $this->object->getLimitAmountOnDate($rep->budgetlimit->budget, $rep->startdate); - - $this->assertEquals($rep->amount, $amount); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::getLimitAmountOnDate - */ - public function testGetLimitAmountOnDateNull() - { - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - - $amount = $this->object->getLimitAmountOnDate($budget, new Carbon); - - $this->assertNull($amount); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::getWithoutBudget - */ - public function testGetWithoutBudget() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - $set = $this->object->getWithoutBudget(new Carbon, new Carbon); - $this->assertCount(0, $set); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::getWithoutBudgetSum - */ - public function testGetWithoutBudgetSum() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - $sum = $this->object->getWithoutBudgetSum(new Carbon, new Carbon); - $this->assertEquals(0, $sum); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::spentInPeriodCorrected - * @covers FireflyIII\Repositories\Shared\ComponentRepository::spentInPeriod - */ - public function testSpentInPeriodCorrected() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - - $amount = $this->object->spentInPeriodCorrected($budget, new Carbon, new Carbon, false); - $this->assertEquals(0, $amount); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::spentInPeriodCorrected - * @covers FireflyIII\Repositories\Shared\ComponentRepository::spentInPeriod - */ - public function testSpentInPeriodCorrectedShared() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - - $amount = $this->object->spentInPeriodCorrected($budget, new Carbon, new Carbon, true); - $this->assertEquals(0, $amount); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::store - */ - public function testStore() - { - $user = FactoryMuffin::create('FireflyIII\User'); - - $data = [ - 'name' => 'new budget ' . rand(1, 100), - 'user' => $user->id - ]; - $result = $this->object->store($data); - - $this->assertTrue($result instanceof Budget); - $this->assertEquals($result->name, $data['name']); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::update - */ - public function testUpdate() - { - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - - $data = [ - 'name' => 'update budget ' . rand(1, 100), - 'active' => true - ]; - $result = $this->object->update($budget, $data); - - $this->assertTrue($result instanceof Budget); - $this->assertEquals($result->name, $data['name']); - $this->assertEquals($result->id, $budget->id); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::updateLimitAmount - */ - public function testUpdateLimitAmount() - { - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - - $result = $this->object->updateLimitAmount($budget, new Carbon, 100); - - $this->assertTrue($result instanceof BudgetLimit); - $this->assertEquals($result->amount, 100); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::updateLimitAmount - */ - public function testUpdateLimitAmountExisting() - { - $budgetLimit = FactoryMuffin::create('FireflyIII\Models\BudgetLimit'); - - $result = $this->object->updateLimitAmount($budgetLimit->budget, $budgetLimit->startdate, 100); - - $this->assertTrue($result instanceof BudgetLimit); - $this->assertEquals($result->amount, 100); - } - - /** - * @covers FireflyIII\Repositories\Budget\BudgetRepository::updateLimitAmount - */ - public function testUpdateLimitAmountZero() - { - $budgetLimit = FactoryMuffin::create('FireflyIII\Models\BudgetLimit'); - - $result = $this->object->updateLimitAmount($budgetLimit->budget, $budgetLimit->startdate, 0); - - $this->assertTrue($result instanceof BudgetLimit); - } -} diff --git a/tests/repositories/CategoryRepositoryTest.php b/tests/repositories/CategoryRepositoryTest.php deleted file mode 100644 index 63ed85ee83..0000000000 --- a/tests/repositories/CategoryRepositoryTest.php +++ /dev/null @@ -1,290 +0,0 @@ -object = new CategoryRepository; - parent::setUp(); - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - public function tearDown() - { - parent::tearDown(); - } - - /** - * @covers FireflyIII\Repositories\Category\CategoryRepository::countJournals - */ - public function testCountJournals() - { - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $result = $this->object->countJournals($category); - - $this->assertEquals(0, $result); - } - - /** - * @covers FireflyIII\Repositories\Category\CategoryRepository::destroy - */ - public function testDestroy() - { - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $this->object->destroy($category); - - $count = Category::where('id', $category->id)->whereNull('deleted_at')->count(); - $this->assertEquals(0, $count); - } - - /** - * @covers FireflyIII\Repositories\Category\CategoryRepository::getCategories - */ - public function testGetCategories() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $cat1 = FactoryMuffin::create('FireflyIII\Models\Category'); - $cat2 = FactoryMuffin::create('FireflyIII\Models\Category'); - $cat1->name = 'BBBBB'; - $cat2->name = 'AAAAA'; - $cat1->user_id = $user->id; - $cat2->user_id = $user->id; - $cat1->save(); - $cat2->save(); - $this->be($user); - - $set = $this->object->getCategories(); - $this->assertEquals('AAAAA', $set->first()->name); - $this->assertCount(2, $set); - } - - /** - * @covers FireflyIII\Repositories\Category\CategoryRepository::getCategoriesAndExpensesCorrected - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testGetCategoriesAndExpensesCorrected() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $type = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); // something - - // some dates: - $start = new Carbon('2014-01-01'); - $end = new Carbon('2014-01-31'); - $inRange = new Carbon('2014-01-12'); - - // generate three categories - // with ten journals each: - for ($i = 0; $i < 3; $i++) { - // category: - /** @var Category $category */ - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $category->user_id = $user->id; - $category->save(); - - for ($j = 0; $j < 10; $j++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->user_id = $user->id; - $journal->transaction_currency_id = $currency->id; - $journal->transaction_type_id = $type->id; // make it a withdrawal - $journal->date = $inRange; - $journal->save(); - // connect to category: - $category->transactionjournals()->save($journal); - } - } - - $this->be($user); - $set = $this->object->getCategoriesAndExpensesCorrected($start, $end); - $this->assertCount(3, $set); - reset($set); - - // 10 journals of 100 each = 1000. - $this->assertEquals('1000', current($set)['sum']); - } - - /** - * @covers FireflyIII\Repositories\Category\CategoryRepository::getFirstActivityDate - */ - public function testGetFirstActivityDate() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - /** @var Category $category */ - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $journal->user_id = $user->id; - $journal->date = new Carbon('2015-02-11'); - $category->user_id = $user->id; - $category->transactionjournals()->save($journal); - $journal->save(); - $category->save(); - - $this->be($user); - - $date = $this->object->getFirstActivityDate($category); - $this->assertEquals('2015-02-11', $date->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Repositories\Category\CategoryRepository::getFirstActivityDate - */ - public function testGetFirstActivityDateNull() - { - /** @var Category $category */ - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $this->be($category->user); - - $date = $this->object->getFirstActivityDate($category); - $this->assertEquals(Carbon::now()->format('Y-m-d'), $date->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Repositories\Category\CategoryRepository::getJournals - */ - public function testGetJournals() - { - - /** @var Category $category */ - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $this->be($category->user); - $set = $this->object->getJournals($category, 1); - - $this->assertEquals(0, $set->count()); - } - - /** - * @covers FireflyIII\Repositories\Category\CategoryRepository::getLatestActivity - */ - public function testGetLatestActivity() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - /** @var Category $category */ - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $journal->user_id = $user->id; - $journal->date = new Carbon('2015-02-11'); - $category->user_id = $user->id; - $category->transactionjournals()->save($journal); - $journal->save(); - $category->save(); - - $this->be($user); - - $date = $this->object->getLatestActivity($category); - $this->assertEquals('2015-02-11', $date->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Repositories\Category\CategoryRepository::getWithoutCategory - */ - public function testGetWithoutCategory() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $set = $this->object->getWithoutCategory(new Carbon, new Carbon); - $this->assertCount(0, $set); - } - - /** - * @covers FireflyIII\Repositories\Category\CategoryRepository::spentInPeriodCorrected - * @covers FireflyIII\Repositories\Shared\ComponentRepository::spentInPeriod - */ - public function testSpentInPeriodSumCorrected() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $sum = $this->object->spentInPeriodCorrected($category, new Carbon, new Carbon, false); - - $this->assertEquals(0, $sum); - - - } - - /** - * @covers FireflyIII\Repositories\Category\CategoryRepository::spentInPeriodCorrected - * @covers FireflyIII\Repositories\Shared\ComponentRepository::spentInPeriod - */ - public function testSpentInPeriodSumCorrectedShared() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $sum = $this->object->spentInPeriodCorrected($category, new Carbon, new Carbon, true); - - $this->assertEquals(0, $sum); - - - } - - /** - * @covers FireflyIII\Repositories\Category\CategoryRepository::spentOnDaySumCorrected - */ - public function testSpentOnDaySumCorrected() - { - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $sum = $this->object->spentOnDaySumCorrected($category, new Carbon); - - $this->assertEquals(0, $sum); - } - - /** - * @covers FireflyIII\Repositories\Category\CategoryRepository::store - */ - public function testStore() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $data = [ - 'name' => 'New category' . rand(1, 100), - 'user' => $user->id - ]; - $newCategory = $this->object->store($data); - - $this->assertEquals($data['name'], $newCategory->name); - } - - /** - * @covers FireflyIII\Repositories\Category\CategoryRepository::update - */ - public function testUpdate() - { - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $data = [ - 'name' => 'New category' . rand(1, 100), - ]; - $newCategory = $this->object->update($category, $data); - - $this->assertEquals($data['name'], $newCategory->name); - } - - public function testgetLatestActivityNull() - { - /** @var Category $category */ - $category = FactoryMuffin::create('FireflyIII\Models\Category'); - $this->be($category->user); - - $date = $this->object->getLatestActivity($category); - $this->assertNull($date); - } -} diff --git a/tests/repositories/CurrencyRepositoryTest.php b/tests/repositories/CurrencyRepositoryTest.php deleted file mode 100644 index a8d09b43f3..0000000000 --- a/tests/repositories/CurrencyRepositoryTest.php +++ /dev/null @@ -1,114 +0,0 @@ -object = new CurrencyRepository; - parent::setUp(); - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - public function tearDown() - { - parent::tearDown(); - } - - /** - * @covers FireflyIII\Repositories\Currency\CurrencyRepository::countJournals - */ - public function testCountJournals() - { - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $count = $this->object->countJournals($currency); - $this->assertEquals(0, $count); - } - - /** - * @covers FireflyIII\Repositories\Currency\CurrencyRepository::get - */ - public function testGet() - { - FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - - $set = $this->object->get(); - $this->assertCount(3, $set); // EUR is already present. - } - - /** - * @covers FireflyIII\Repositories\Currency\CurrencyRepository::getCurrencyByPreference - */ - public function testGetCurrencyByPreference() - { - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); - $preference->data = $currency->code; - $preference->save(); - $found = $this->object->getCurrencyByPreference($preference); - $this->assertEquals($currency->id, $found->id); - } - - /** - * @covers FireflyIII\Repositories\Currency\CurrencyRepository::getCurrencyByPreference - */ - public function testGetCurrencyByPreferenceNull() - { - FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); - $preference->data = 'ABC'; - $preference->save(); - $found = $this->object->getCurrencyByPreference($preference); - $this->assertEquals(1, $found->id); // EUR is first and will be set. - } - - /** - * @covers FireflyIII\Repositories\Currency\CurrencyRepository::store - */ - public function testStore() - { - $data = [ - 'name' => 'Some Currency', - 'code' => 'ABC', - 'symbol' => 'S' - ]; - - $currency = $this->object->store($data); - $this->assertEquals($data['name'], $currency->name); - } - - /** - * @covers FireflyIII\Repositories\Currency\CurrencyRepository::update - */ - public function testUpdate() - { - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - - $data = [ - 'name' => 'Some Currency', - 'code' => 'ABC', - 'symbol' => 'S' - ]; - - $newCurrency = $this->object->update($currency, $data); - $this->assertEquals($data['name'], $newCurrency->name); - $this->assertEquals($currency->id, $newCurrency->id); - } -} diff --git a/tests/repositories/JournalRepositoryTest.php b/tests/repositories/JournalRepositoryTest.php deleted file mode 100644 index 92dc3596f4..0000000000 --- a/tests/repositories/JournalRepositoryTest.php +++ /dev/null @@ -1,572 +0,0 @@ -object = new JournalRepository; - parent::setUp(); - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - public function tearDown() - { - parent::tearDown(); - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::delete - * @covers FireflyIII\Providers\EventServiceProvider::boot - * @covers FireflyIII\Providers\EventServiceProvider::registerDeleteEvents - */ - public function testDelete() - { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $transaction = $journal->transactions[0]; - $this->object->delete($journal); - - $this->assertEquals(0, TransactionJournal::where('id', $journal->id)->whereNull('deleted_at')->count()); - $this->assertEquals(0, Transaction::where('id', $transaction->id)->whereNull('deleted_at')->count()); - - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::first - */ - public function testFirst() - { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $this->be($journal->user); - - $first = $this->object->first(); - - $this->assertEquals($journal->id, $first->id); - - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::getAmountBefore - */ - public function testGetAmountBefore() - { - // create some accounts: - $expense = FactoryMuffin::create('FireflyIII\Models\Account'); // expense - FactoryMuffin::create('FireflyIII\Models\Account'); // revenue - $asset = FactoryMuffin::create('FireflyIII\Models\Account'); // asset - - // transaction type - $withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal - - // create five journals with incrementing dates: - $today = new Carbon('2015-01-01'); - $journal = null; - for ($i = 0; $i < 5; $i++) { - // create journal: - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->transaction_type_id = $withdrawal; - $journal->date = $today; - $journal->save(); - - // update transactions: - $journal->transactions[0]->amount = -100; - $journal->transactions[0]->account_id = $asset->id; - $journal->transactions[0]->save(); - - $journal->transactions[1]->amount = 100; - $journal->transactions[1]->account_id = $expense->id; - $journal->transactions[1]->save(); - - // connect to expense - $today->addDay(); - } - - - $before = $this->object->getAmountBefore($journal, $journal->transactions[1]); - // five transactions, we check the last one, so amount should be 400. - $this->assertEquals(400, $before); - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::getJournalsOfType - */ - public function testGetJournalsOfType() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $type = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $this->be($user); - $result = $this->object->getJournalsOfType($type); - $this->assertCount(0, $result); - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::getJournalsOfTypes - */ - public function testGetJournalsOfTypes() - { - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - $types = ['Withdrawal', 'Expense']; - $set = $this->object->getJournalsOfTypes($types, 0, 1); - - $this->assertTrue($set instanceof LengthAwarePaginator); - $this->assertEquals(1, $set->currentPage()); - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::getTransactionType - */ - public function testGetTransactionType() - { - $type = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $otherType = $this->object->getTransactionType($type->type); - $this->assertEquals($type->id, $otherType->id); - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::getWithDate - */ - public function testGetWithDate() - { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $this->be($journal->user); - - $found = $this->object->getWithDate($journal->id, $journal->date); - - $this->assertEquals($journal->id, $found->id); - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::saveTags - */ - public function testSaveTags() - { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $tags = ['one', 'two', 'three']; - $this->be($journal->user); - - $this->object->saveTags($journal, $tags); - - $this->assertCount(3, $journal->tags()->get()); - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::store - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeAccounts - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeWithdrawalAccounts - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeDepositAccounts - */ - public function testStore() - { - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $user = FactoryMuffin::create('FireflyIII\User'); - $data = [ - 'description' => 'Some journal ' . rand(1, 100), - 'user' => $user->id, - 'what' => 'withdrawal', - 'amount_currency_id' => $currency->id, - 'account_id' => $account1->id, - 'expense_account' => 'Some expense account', - 'date' => '2014-01-01', - 'category' => 'Some category', - 'budget_id' => $budget->id, - 'amount' => 100, - 'tags' => ['one', 'two', 'three'] - - - ]; - - $journal = $this->object->store($data); - - $this->assertEquals($data['description'], $journal->description); - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::store - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeAccounts - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeWithdrawalAccounts - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeDepositAccounts - */ - public function testStoreDeposit() - { - for ($i = 0; $i < 4; $i++) { - FactoryMuffin::create('FireflyIII\Models\AccountType'); - } - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $user = FactoryMuffin::create('FireflyIII\User'); - $data = [ - 'description' => 'Some journal ' . rand(1, 100), - 'user' => $user->id, - 'what' => 'deposit', - 'amount_currency_id' => $currency->id, - 'account_id' => $account1->id, - 'revenue_account' => 'Some revenue account', - 'date' => '2014-01-01', - 'category' => 'Some category', - 'budget_id' => $budget->id, - 'amount' => 100, - 'tags' => ['one', 'two', 'three'] - - - ]; - - $journal = $this->object->store($data); - - $this->assertEquals($data['description'], $journal->description); - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::store - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeAccounts - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeWithdrawalAccounts - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeDepositAccounts - */ - public function testStoreExpenseWithCash() - { - for ($i = 0; $i < 4; $i++) { - FactoryMuffin::create('FireflyIII\Models\AccountType'); - } - - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $user = FactoryMuffin::create('FireflyIII\User'); - $data = [ - 'description' => 'Some journal ' . rand(1, 100), - 'user' => $user->id, - 'what' => 'withdrawal', - 'amount_currency_id' => $currency->id, - 'account_id' => $account1->id, - 'expense_account' => '', - 'date' => '2014-01-01', - 'category' => 'Some other category', - 'budget_id' => $budget->id, - 'amount' => 100, - 'tags' => ['one', 'two', 'three'] - - - ]; - - $journal = $this->object->store($data); - - $this->assertEquals($data['description'], $journal->description); - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::store - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeAccounts - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeWithdrawalAccounts - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeDepositAccounts - * @expectedException Symfony\Component\HttpKernel\Exception\HttpException - */ - public function testStoreInvalidFromAccount() - { - for ($i = 0; $i < 4; $i++) { - FactoryMuffin::create('FireflyIII\Models\AccountType'); - } - - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $user = FactoryMuffin::create('FireflyIII\User'); - $data = [ - 'description' => 'Some journal ' . rand(1, 100), - 'user' => $user->id, - 'what' => 'transfer', - 'amount_currency_id' => $currency->id, - 'account_from_id' => $account1->id, - 'account_to_id' => 17, - 'date' => '2014-01-01', - 'category' => 'Some other category', - 'budget_id' => $budget->id, - 'amount' => 100, - 'tags' => ['one', 'two', 'three'] - - - ]; - - $journal = $this->object->store($data); - - $this->assertEquals($data['description'], $journal->description); - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::store - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeAccounts - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeWithdrawalAccounts - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeDepositAccounts - * @expectedException Symfony\Component\HttpKernel\Exception\HttpException - */ - public function testStoreInvalidToAccount() - { - for ($i = 0; $i < 4; $i++) { - FactoryMuffin::create('FireflyIII\Models\AccountType'); - } - - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $user = FactoryMuffin::create('FireflyIII\User'); - $data = [ - 'description' => 'Some journal ' . rand(1, 100), - 'user' => $user->id, - 'what' => 'transfer', - 'amount_currency_id' => $currency->id, - 'account_from_id' => 17, - 'account_to_id' => $account1->id, - 'date' => '2014-01-01', - 'category' => 'Some other category', - 'budget_id' => $budget->id, - 'amount' => 100, - 'tags' => ['one', 'two', 'three'] - - - ]; - - $journal = $this->object->store($data); - - $this->assertEquals($data['description'], $journal->description); - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::store - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeAccounts - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeWithdrawalAccounts - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeDepositAccounts - */ - public function testStoreRevenueWithCash() - { - for ($i = 0; $i < 4; $i++) { - FactoryMuffin::create('FireflyIII\Models\AccountType'); - } - - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $user = FactoryMuffin::create('FireflyIII\User'); - $data = [ - 'description' => 'Some journal ' . rand(1, 100), - 'user' => $user->id, - 'what' => 'deposit', - 'amount_currency_id' => $currency->id, - 'account_id' => $account1->id, - 'revenue_account' => '', - 'date' => '2014-01-01', - 'category' => 'Some other category', - 'budget_id' => $budget->id, - 'amount' => 100, - 'tags' => ['one', 'two', 'three'] - - - ]; - - $journal = $this->object->store($data); - - $this->assertEquals($data['description'], $journal->description); - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::store - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeAccounts - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeWithdrawalAccounts - * @covers FireflyIII\Repositories\Journal\JournalRepository::storeDepositAccounts - */ - public function testStoreTransfer() - { - for ($i = 0; $i < 4; $i++) { - FactoryMuffin::create('FireflyIII\Models\AccountType'); - } - - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account2 = FactoryMuffin::create('FireflyIII\Models\Account'); - $user = FactoryMuffin::create('FireflyIII\User'); - $data = [ - 'description' => 'Some journal ' . rand(1, 100), - 'user' => $user->id, - 'what' => 'transfer', - 'amount_currency_id' => $currency->id, - 'account_from_id' => $account1->id, - 'account_to_id' => $account2->id, - 'date' => '2014-01-01', - 'category' => 'Some other category', - 'budget_id' => $budget->id, - 'amount' => 100, - 'tags' => ['one', 'two', 'three'] - - - ]; - - $journal = $this->object->store($data); - - $this->assertEquals($data['description'], $journal->description); - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::update - * @covers FireflyIII\Repositories\Journal\JournalRepository::updateTags - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testUpdate() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - for ($i = 0; $i < 4; $i++) { - FactoryMuffin::create('FireflyIII\Models\AccountType'); - } - - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account2 = FactoryMuffin::create('FireflyIII\Models\Account'); - - // two transactions - Transaction::create( - [ - 'account_id' => $account1->id, - 'transaction_journal_id' => $journal->id, - 'amount' => 100, - ] - ); - Transaction::create( - [ - 'account_id' => $account1->id, - 'transaction_journal_id' => $journal->id, - 'amount' => -100, - ] - ); - - - $data = [ - 'amount_currency_id' => $currency->id, - 'description' => 'New description ' . rand(1, 100), - 'date' => '2015-01-01', - 'category' => 'SomenewCat', - 'amount' => 50, - 'user' => $journal->user_id, - 'budget_id' => $budget->id, - 'account_from_id' => $account1->id, - 'account_to_id' => $account2->id, - 'revenue_account' => 'Some revenue account', - 'expense_account' => 'Some expense account', - 'tags' => ['a', 'b', 'c'] - - ]; - - $result = $this->object->update($journal, $data); - - $this->assertEquals($result->description, $data['description']); - $this->assertEquals($result->amount, 50); - } - - /** - * @covers FireflyIII\Repositories\Journal\JournalRepository::update - * @covers FireflyIII\Repositories\Journal\JournalRepository::updateTags - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function testUpdateNoTags() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - for ($i = 0; $i < 4; $i++) { - FactoryMuffin::create('FireflyIII\Models\AccountType'); - } - - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency'); - $budget = FactoryMuffin::create('FireflyIII\Models\Budget'); - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account2 = FactoryMuffin::create('FireflyIII\Models\Account'); - - // two transactions - Transaction::create( - [ - 'account_id' => $account1->id, - 'transaction_journal_id' => $journal->id, - 'amount' => 100, - ] - ); - Transaction::create( - [ - 'account_id' => $account1->id, - 'transaction_journal_id' => $journal->id, - 'amount' => -100, - ] - ); - - - $data = [ - 'amount_currency_id' => $currency->id, - 'description' => 'New description ' . rand(1, 100), - 'date' => '2015-01-01', - 'category' => 'SomenewCat', - 'amount' => 50, - 'user' => $journal->user_id, - 'budget_id' => $budget->id, - 'account_from_id' => $account1->id, - 'account_to_id' => $account2->id, - 'revenue_account' => 'Some revenue account', - 'expense_account' => 'Some expense account', - 'tags' => [] - - ]; - - $result = $this->object->update($journal, $data); - - $this->assertEquals($result->description, $data['description']); - $this->assertEquals($result->amount, 50); - } - -} diff --git a/tests/repositories/PiggyBankRepositoryTest.php b/tests/repositories/PiggyBankRepositoryTest.php deleted file mode 100644 index 79c9079c4e..0000000000 --- a/tests/repositories/PiggyBankRepositoryTest.php +++ /dev/null @@ -1,196 +0,0 @@ -object = new PiggyBankRepository; - parent::setUp(); - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - public function tearDown() - { - parent::tearDown(); - } - - /** - * @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::createEvent - */ - public function testCreateEvent() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $this->object->createEvent($piggyBank, 100); - - $this->assertCount(1, $piggyBank->piggybankevents()->get()); - } - - - /** - * @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::destroy - * @covers FireflyIII\Providers\EventServiceProvider::boot - * @covers FireflyIII\Providers\EventServiceProvider::registerDeleteEvents - */ - public function testDestroy() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - - $this->object->destroy($piggyBank); - - $this->assertCount(0, PiggyBank::where('id', $piggyBank->id)->whereNull('deleted_at')->get()); - - } - - /** - * @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::getEventSummarySet - */ - public function testGetEventSummarySet() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $set = $this->object->getEventSummarySet($piggyBank); - - $this->assertCount(0, $set); - } - - /** - * @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::getEvents - */ - public function testGetEvents() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $set = $this->object->getEvents($piggyBank); - - $this->assertCount(0, $set); - } - - /** - * @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::getPiggyBanks - */ - public function testGetPiggyBanks() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $this->be($piggyBank->account->user); - $set = $this->object->getPiggyBanks(); - - $this->assertCount(1, $set); - } - - /** - * @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::reset - */ - public function testReset() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $piggyBank->order = 4; - $piggyBank->save(); - $this->be($piggyBank->account->user); - $this->object->reset(); - - $this->assertCount(1, PiggyBank::where('order', 0)->get()); - } - - /** - * @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::setOrder - */ - public function testSetOrder() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - $piggyBank->order = 4; - $this->be($piggyBank->account->user); - $piggyBank->save(); - - $this->object->setOrder($piggyBank->id, 3); - $newPiggy = PiggyBank::find($piggyBank->id); - $this->assertEquals(3, $newPiggy->order); - } - - /** - * @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::store - * @covers FireflyIII\Providers\EventServiceProvider::boot - * @covers FireflyIII\Providers\EventServiceProvider::registerCreateEvents - */ - public function testStore() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - - $data = [ - 'account_id' => $account->id, - 'name' => 'Some piggy', - 'targetamount' => 100, - 'order' => 1, - 'remind_me' => false, - 'reminder_skip' => 0, - - ]; - - $piggyBank = $this->object->store($data); - - $this->assertEquals(1, $piggyBank->id); - } - - /** - * @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::store - * @covers FireflyIII\Providers\EventServiceProvider::boot - * @covers FireflyIII\Providers\EventServiceProvider::registerCreateEvents - */ - public function testStoreRedirect() - { - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - - $data = [ - 'account_id' => $account->id, - 'name' => 'Some piggy', - 'targetamount' => 100, - 'create_another' => 1, - 'order' => 1, - 'remind_me' => false, - 'reminder_skip' => 0, - - ]; - - $piggyBank = $this->object->store($data); - - $this->assertEquals(1, $piggyBank->id); - } - - /** - * @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::update - */ - public function testUpdate() - { - $piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank'); - - $data = [ - 'name' => 'Update piggy ' . rand(1, 100), - 'account_id' => $piggyBank->account_id, - 'targetamount' => 101, - 'targetdate' => new Carbon, - 'startdate' => new Carbon, - ]; - - $new = $this->object->update($piggyBank, $data); - - $this->assertEquals($data['name'], $new->name); - $this->assertEquals($piggyBank->id, $new->id); - } -} diff --git a/tests/repositories/TagRepositoryBasicTest.php b/tests/repositories/TagRepositoryBasicTest.php deleted file mode 100644 index b49857ed34..0000000000 --- a/tests/repositories/TagRepositoryBasicTest.php +++ /dev/null @@ -1,182 +0,0 @@ -object = new TagRepository; - parent::setUp(); - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - public function tearDown() - { - parent::tearDown(); - } - /** - * @covers FireflyIII\Repositories\Tag\TagRepository::update - */ - public function testUpdate() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - - - $data = [ - 'tag' => 'Hello' . rand(1, 100), - 'date' => '2012-01-01', - 'description' => 'Some', - 'latitude' => 12, - 'longitude' => 13, - 'zoomLevel' => 4, - 'tagMode' => 'nothing' - ]; - $this->be($tag->user); - - $newTag = $this->object->update($tag, $data); - $this->assertEquals($data['tag'], $newTag->tag); - $this->assertEquals($tag->id, $newTag->id); - } - - /** - * @covers FireflyIII\Repositories\Tag\TagRepository::store - */ - public function testStore() - { - $user = FactoryMuffin::create('FireflyIII\User'); - - $data = [ - 'tag' => 'Hello' . rand(1, 100), - 'date' => '2012-01-01', - 'description' => 'Some', - 'latitude' => 12, - 'longitude' => 13, - 'zoomLevel' => 4, - 'tagMode' => 'nothing' - ]; - $this->be($user); - - $tag = $this->object->store($data); - $this->assertEquals($data['tag'], $tag->tag); - } - - - /** - * @covers FireflyIII\Repositories\Tag\TagRepository::destroy - */ - public function testDestroy() - { - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $this->object->destroy($tag); - - $this->assertCount(0, Tag::where('id', $tag->id)->whereNull('deleted_at')->get()); - - } - - /** - * @covers FireflyIII\Repositories\Tag\TagRepository::get - */ - public function testGet() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $tag1 = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag2 = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag1->tag = 'BBB'; - $tag2->tag = 'AAA'; - $tag1->user_id = $user->id; - $tag2->user_id = $user->id; - - $tag1->save(); - $tag2->save(); - - $this->be($user); - - $set = $this->object->get(); - - $this->assertCount(2, $set); - $this->assertEquals('AAA', $set->first()->tag); - } - - - /** - * @covers FireflyIII\Repositories\Tag\TagRepository::coveredByBalancingActs - */ - public function testCoveredByBalancingActs() - { - // create a user: - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // create transaction and account types: - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // deposit - $transfer = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // transfer - FactoryMuffin::create('FireflyIII\Models\AccountType'); // expense - FactoryMuffin::create('FireflyIII\Models\AccountType'); // revenue - $asset = FactoryMuffin::create('FireflyIII\Models\AccountType'); // asset - - // create two accounts: - $fromAccount = FactoryMuffin::create('FireflyIII\Models\Account'); // asset - $toAccount = FactoryMuffin::create('FireflyIII\Models\Account'); // asset - $fromAccount->account_type_id = $asset->id; - $toAccount->account_type_id = $asset->id; - $fromAccount->save(); - $toAccount->save(); - - - // create a tag - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->tagMode = 'balancingAct'; - $tag->user_id = $user->id; - $tag->save(); - - // date - $today = new Carbon('2014-01-12'); - $start = new Carbon('2014-01-01'); - $end = new Carbon('2014-01-31'); - - // store five journals - for ($i = 0; $i < 5; $i++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); // deposit! - // set date: - $journal->date = $today; - $journal->user_id = $user->id; - $journal->transaction_type_id = $transfer->id; - $journal->tags()->save($tag); - $journal->save(); - - // update accounts: - $journal->transactions[0]->account_id = $fromAccount->id; - $journal->transactions[0]->amount = '-100'; - $journal->transactions[0]->save(); - $journal->transactions[1]->account_id = $toAccount->id; - $journal->transactions[1]->amount = '100'; - $journal->transactions[1]->save(); - - } - - $amount = $this->object->coveredByBalancingActs($toAccount, $start, $end); - // five transactions, 100 each. - $this->assertEquals('500', $amount); - } - -} diff --git a/tests/repositories/TagRepositoryTest.php b/tests/repositories/TagRepositoryTest.php deleted file mode 100644 index bcd763cd00..0000000000 --- a/tests/repositories/TagRepositoryTest.php +++ /dev/null @@ -1,656 +0,0 @@ -object = new TagRepository; - parent::setUp(); - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - public function tearDown() - { - parent::tearDown(); - } - - /** - * Already connected tag and transaction journal returns FALSE. - * - * @covers FireflyIII\Repositories\Tag\TagRepository::connect - */ - public function testConnectAlreadyConnected() - { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $journal->tags()->save($tag); - - $result = $this->object->connect($journal, $tag); - $this->assertFalse($result); - - } - - /** - * A deposit cannot be connected to a balancing act. - * - * @covers FireflyIII\Repositories\Tag\TagRepository::connect - * @covers FireflyIII\Repositories\Tag\TagRepository::connectBalancingAct - */ - public function testConnectBalancingOneDeposit() - { - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $deposit = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - - $journal->transaction_type_id = $deposit->id; - $tag->tagMode = 'balancingAct'; - - $tag->save(); - $journal->save(); - - $result = $this->object->connect($journal, $tag); - $this->assertFalse($result); - - } - - /** - * Connecting a single transfer to a balancing act is possible if there are no - * other transfers already connected. - * - * @covers FireflyIII\Repositories\Tag\TagRepository::connect - * @covers FireflyIII\Repositories\Tag\TagRepository::connectBalancingAct - */ - public function testConnectBalancingOneTransfer() - { - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $transfer = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - - $journal->transaction_type_id = $transfer->id; - $tag->tagMode = 'balancingAct'; - - $tag->save(); - $journal->save(); - - $result = $this->object->connect($journal, $tag); - $this->assertTrue($result); - - } - - /** - * Connecting a single withdrawal to a balancing act is possible if there are - * not other withdrawals already connected. - * - * @covers FireflyIII\Repositories\Tag\TagRepository::connect - * @covers FireflyIII\Repositories\Tag\TagRepository::connectBalancingAct - */ - public function testConnectBalancingOneWithdrawal() - { - $withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - - $journal->transaction_type_id = $withdrawal->id; - $tag->tagMode = 'balancingAct'; - - $tag->save(); - $journal->save(); - - $result = $this->object->connect($journal, $tag); - $this->assertTrue($result); - - } - - /** - * Default connection between a journal and a tag. - * - * @covers FireflyIII\Repositories\Tag\TagRepository::connect - */ - public function testConnectDefault() - { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->tagMode = 'nothing'; - $tag->save(); - - $result = $this->object->connect($journal, $tag); - $this->assertTrue($result); - - } - - /** - * Fallback for connect then the tag mode is unknown - * - * @covers FireflyIII\Repositories\Tag\TagRepository::connect - */ - public function testConnectInvalidType() - { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->tagMode = 'Idontknow'; - $tag->save(); - - $result = $this->object->connect($journal, $tag); - $this->assertFalse($result); - - } - - /** - * Once one or more journals have been accepted by the tag, others must match the asset account - * id. For this to work, we must also create an asset account, and a transaction. - * - * Connecting a deposit to a tag that already has a withdrawal. - * - * @covers FireflyIII\Repositories\Tag\TagRepository::connect - * @covers FireflyIII\Repositories\Tag\TagRepository::connectAdvancePayment - * @covers FireflyIII\Repositories\Tag\TagRepository::matchAll - */ - public function testConnectPaymentMultipleMatch() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $deposit = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - $asset = FactoryMuffin::create('FireflyIII\Models\AccountType'); - - $account = FactoryMuffin::create('FireflyIII\Models\Account'); - - - $journal1 = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal2 = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - - // transactions for both: - $journal1->transactions[0]->account_id = $account->id; - $journal2->transactions[0]->account_id = $account->id; - $journal1->transactions[1]->account_id = $account->id; - $journal2->transactions[1]->account_id = $account->id; - $journal1->transactions[0]->save(); - $journal2->transactions[0]->save(); - $journal1->transactions[1]->save(); - $journal2->transactions[1]->save(); - - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - - $journal1->transaction_type_id = $withdrawal->id; - $journal2->transaction_type_id = $deposit->id; - $tag->tagMode = 'advancePayment'; - $account->account_type_id = $asset->id; - - $tag->save(); - $journal1->save(); - $journal2->save(); - $account->save(); - // connect journal1: - - $journal1->tags()->save($tag); - - $result = $this->object->connect($journal2, $tag); - - $this->assertTrue($result); - - } - - /** - * Once one or more journals have been accepted by the tag, others must match the asset account - * id. For this to work, we must also create an asset account, and a transaction. - * - * This covers the advance payment - * - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - * @covers FireflyIII\Repositories\Tag\TagRepository::connect - * @covers FireflyIII\Repositories\Tag\TagRepository::connectAdvancePayment - * @covers FireflyIII\Repositories\Tag\TagRepository::matchAll - */ - public function testConnectPaymentNoMatch() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $deposit = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - $asset = FactoryMuffin::create('FireflyIII\Models\AccountType'); - - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account2 = FactoryMuffin::create('FireflyIII\Models\Account'); - - - $journal1 = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal2 = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - - // transactions for both: - $journal1->transactions[0]->account_id = $account1->id; - $journal2->transactions[0]->account_id = $account2->id; - $journal1->transactions[1]->account_id = $account1->id; - $journal2->transactions[1]->account_id = $account2->id; - $journal1->transactions[0]->save(); - $journal2->transactions[0]->save(); - $journal1->transactions[1]->save(); - $journal2->transactions[1]->save(); - - - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - - $journal1->transaction_type_id = $withdrawal->id; - $journal2->transaction_type_id = $deposit->id; - $tag->tagMode = 'advancePayment'; - $account1->account_type_id = $asset->id; - $account2->account_type_id = $asset->id; - - $tag->save(); - $journal1->save(); - $journal2->save(); - $account1->save(); - $account2->save(); - // connect journal1: - $journal1->tags()->save($tag); - - $result = $this->object->connect($journal2, $tag); - // account1 and account2 are different, so false: - $this->assertFalse($result); - - } - - /** - * Once one or more journals have been accepted by the tag, others must match the asset account - * id. For this to work, we must also create an asset account, and a transaction. - * - * This covers the advance payment - * - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - * @covers FireflyIII\Repositories\Tag\TagRepository::connect - * @covers FireflyIII\Repositories\Tag\TagRepository::connectAdvancePayment - * @covers FireflyIII\Repositories\Tag\TagRepository::matchAll - */ - public function testConnectPaymentNoMatchDeposit() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $deposit = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - FactoryMuffin::create('FireflyIII\Models\AccountType'); - FactoryMuffin::create('FireflyIII\Models\AccountType'); - $asset = FactoryMuffin::create('FireflyIII\Models\AccountType'); - - $account1 = FactoryMuffin::create('FireflyIII\Models\Account'); - $account2 = FactoryMuffin::create('FireflyIII\Models\Account'); - - - $journal1 = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal2 = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - - // transactions for both: - $journal1->transactions[0]->account_id = $account1->id; - $journal2->transactions[0]->account_id = $account2->id; - $journal1->transactions[1]->account_id = $account1->id; - $journal2->transactions[1]->account_id = $account2->id; - $journal1->transactions[0]->save(); - $journal2->transactions[0]->save(); - $journal1->transactions[1]->save(); - $journal2->transactions[1]->save(); - - - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - - $journal1->transaction_type_id = $withdrawal->id; - $journal2->transaction_type_id = $deposit->id; - $tag->tagMode = 'advancePayment'; - $account1->account_type_id = $asset->id; - $account2->account_type_id = $asset->id; - - $tag->save(); - $journal1->save(); - $journal2->save(); - $account1->save(); - $account2->save(); - // connect journal1: - $journal2->tags()->save($tag); - - $result = $this->object->connect($journal1, $tag); - // account1 and account2 are different, so false: - $this->assertFalse($result); - - } - - /** - * An advance payment accepts no transfers. - * - * @covers FireflyIII\Repositories\Tag\TagRepository::connect - * @covers FireflyIII\Repositories\Tag\TagRepository::connectAdvancePayment - * @covers FireflyIII\Repositories\Tag\TagRepository::matchAll - */ - public function testConnectPaymentOneTransfer() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $transfer = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - - $journal->transaction_type_id = $transfer->id; - $tag->tagMode = 'advancePayment'; - - $tag->save(); - $journal->save(); - - $result = $this->object->connect($journal, $tag); - $this->assertFalse($result); - - } - - /** - * An advance payment accepts only one withdrawal, not two. - * - * @covers FireflyIII\Repositories\Tag\TagRepository::connect - * @covers FireflyIII\Repositories\Tag\TagRepository::connectAdvancePayment - * @covers FireflyIII\Repositories\Tag\TagRepository::matchAll - */ - public function testConnectPaymentOneWithdrawal() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - - $journal->transaction_type_id = $withdrawal->id; - $tag->tagMode = 'advancePayment'; - - $tag->save(); - $journal->save(); - - $result = $this->object->connect($journal, $tag); - $this->assertTrue($result); - - } - - /** - * An advance payment accepts only one withdrawal, not two. - * - * @covers FireflyIII\Repositories\Tag\TagRepository::connect - * @covers FireflyIII\Repositories\Tag\TagRepository::connectAdvancePayment - * @covers FireflyIII\Repositories\Tag\TagRepository::matchAll - */ - public function testConnectPaymentTwoWithdrawals() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $otherJournal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - - $journal->transaction_type_id = $withdrawal->id; - $otherJournal->transaction_type_id = $withdrawal->id; - $tag->tagMode = 'advancePayment'; - - $tag->save(); - $journal->save(); - $otherJournal->save(); - $otherJournal->tags()->save($tag); - - $result = $this->object->connect($journal, $tag); - $this->assertFalse($result); - - } - - /** - * An advance payment accepts only one withdrawal, not two, even not - * if the accounts are the same - * - * @covers FireflyIII\Repositories\Tag\TagRepository::connect - * @covers FireflyIII\Repositories\Tag\TagRepository::connectAdvancePayment - * @covers FireflyIII\Repositories\Tag\TagRepository::matchAll - */ - public function testConnectPaymentTwoWithdrawalsSameAccounts() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - $withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); - - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $otherJournal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - - $journal->transaction_type_id = $withdrawal->id; - $otherJournal->transaction_type_id = $withdrawal->id; - - // match up accounts: - $otherJournal->transactions[0]->account_id = $journal->transactions[0]->account_id; - $otherJournal->transactions[1]->account_id = $journal->transactions[1]->account_id; - $otherJournal->transactions[0]->save(); - $otherJournal->transactions[1]->save(); - - - $tag->tagMode = 'advancePayment'; - - $tag->save(); - $journal->save(); - $otherJournal->save(); - $otherJournal->tags()->save($tag); - - $result = $this->object->connect($journal, $tag); - $this->assertFalse($result); - } - - - /** - * By default, any tag can become an advancePayment - * - * @covers FireflyIII\Repositories\Tag\TagRepository::tagAllowAdvance - */ - public function testTagAllowAdvance() - { - // create a tag - $user = FactoryMuffin::create('FireflyIII\User'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->tagMode = 'nothing'; - $tag->user_id = $user->id; - $tag->save(); - - $result = $this->object->tagAllowAdvance($tag); - $this->assertTrue($result); - } - - /** - * If the tag has one transfer, it can NOT become an advance payment. - * - * @covers FireflyIII\Repositories\Tag\TagRepository::tagAllowAdvance - */ - public function testTagAllowAdvanceWithTransfer() - { - // create a tag - $user = FactoryMuffin::create('FireflyIII\User'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // deposit - $transfer = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // transfer - $tag->tagMode = 'nothing'; - $tag->user_id = $user->id; - $tag->save(); - - // create withdrawal: - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->transaction_type_id = $transfer->id; - $journal->save(); - $journal->tags()->save($tag); - - $result = $this->object->tagAllowAdvance($tag); - $this->assertFalse($result); - } - - /** - * If the tag has one withdrawal, it can still become an advance payment. - * - * @covers FireflyIII\Repositories\Tag\TagRepository::tagAllowAdvance - */ - public function testTagAllowAdvanceWithWithdrawal() - { - // create a tag - $user = FactoryMuffin::create('FireflyIII\User'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->tagMode = 'nothing'; - $tag->user_id = $user->id; - $tag->save(); - - // create withdrawal: - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->tags()->save($tag); - - $result = $this->object->tagAllowAdvance($tag); - $this->assertTrue($result); - } - - /** - * If the tag has two withdrawals, it CANNOT become an advance payment. - * - * @covers FireflyIII\Repositories\Tag\TagRepository::tagAllowAdvance - */ - public function testTagAllowAdvanceWithWithdrawals() - { - // create a tag - $user = FactoryMuffin::create('FireflyIII\User'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $withdrawal = FactoryMuffin::create('FireflyIII\Models\TransactionType'); - $tag->tagMode = 'nothing'; - $tag->user_id = $user->id; - $tag->save(); - - // create withdrawals - for ($i = 0; $i < 2; $i++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->transaction_type_id = $withdrawal->id; - $journal->save(); - $journal->tags()->save($tag); - } - - $result = $this->object->tagAllowAdvance($tag); - $this->assertFalse($result); - } - - /** - * By default, an empty tag can become a balancing act. - * - * @covers FireflyIII\Repositories\Tag\TagRepository::tagAllowBalancing - */ - public function testTagAllowBalancing() - { - // create a tag - $user = FactoryMuffin::create('FireflyIII\User'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->tagMode = 'nothing'; - $tag->user_id = $user->id; - $tag->save(); - - $result = $this->object->tagAllowBalancing($tag); - $this->assertTrue($result); - } - - /** - * When the tag has one deposit, it can NOT become a balancing act. - * - * @covers FireflyIII\Repositories\Tag\TagRepository::tagAllowBalancing - */ - public function testTagAllowBalancingDeposit() - { - - // create a tag - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal - $deposit = FactoryMuffin::create('FireflyIII\Models\TransactionType'); // deposit - $user = FactoryMuffin::create('FireflyIII\User'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->tagMode = 'nothing'; - $tag->user_id = $user->id; - $tag->save(); - - // create three journals and connect them: - for ($i = 0; $i < 1; $i++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->transaction_type_id = $deposit->id; - $journal->save(); - $journal->tags()->save($tag); - } - - $result = $this->object->tagAllowBalancing($tag); - $this->assertFalse($result); - } - - /** - * When the tag has more than 2 transactions connected to it, it cannot become abalancing act. - * - * @covers FireflyIII\Repositories\Tag\TagRepository::tagAllowBalancing - */ - public function testTagAllowBalancingManyJournals() - { - // create a tag - $user = FactoryMuffin::create('FireflyIII\User'); - $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); - $tag->tagMode = 'nothing'; - $tag->user_id = $user->id; - $tag->save(); - - // create three journals and connect them: - for ($i = 0; $i < 3; $i++) { - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $journal->tags()->save($tag); - } - - $result = $this->object->tagAllowBalancing($tag); - $this->assertFalse($result); - } -} diff --git a/tests/support/AmountSupportTest.php b/tests/support/AmountSupportTest.php deleted file mode 100644 index 63631e0578..0000000000 --- a/tests/support/AmountSupportTest.php +++ /dev/null @@ -1,300 +0,0 @@ -object = new Amount; - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - public function tearDown() - { - parent::tearDown(); - } - - /** - * @covers FireflyIII\Support\Amount::format - * @covers FireflyIII\Support\Amount::getCurrencySymbol - */ - public function testFormat() - { - $amount = '123'; - $result = $this->object->format($amount, true); - $this->assertTrue(str_contains($result, $amount)); - } - - /** - * @covers FireflyIII\Support\Amount::formatJournal - */ - public function testFormatJournalColouredTransfer() - { - - - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // deposit - /** @var \FireflyIII\Models\TransactionJournal $journal */ - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $symbol = $journal->transactionCurrency->symbol; - - $result = $this->object->formatJournal($journal, true); - - // transfer is blue: - $this->assertTrue(str_contains($result, '')); - // transfer contains currency code: - $this->assertTrue(str_contains($result, $symbol)); - // all amounts are 100. - $this->assertTrue(str_contains($result, '100')); - } - - /** - * @covers FireflyIII\Support\Amount::formatJournal - */ - public function testFormatJournalUncolouredTransfer() - { - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // deposit - /** @var \FireflyIII\Models\TransactionJournal $journal */ - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $symbol = $journal->transactionCurrency->symbol; - - $result = $this->object->formatJournal($journal, false); - - // transfer is not blue: - $this->assertFalse(str_contains($result, '')); - // transfer contains currency code: - $this->assertTrue(str_contains($result, $symbol)); - // all amounts are 100. - $this->assertTrue(str_contains($result, '100')); - } - - /** - * @covers FireflyIII\Support\Amount::formatJournal - */ - public function testFormatJournalWithSymbol() - { - FactoryMuffin::create('FireflyIII\Models\TransactionType'); // withdrawal - /** @var \FireflyIII\Models\TransactionJournal $journal */ - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $symbol = $journal->transactionCurrency->symbol; - $journal->symbol = $symbol; - - $result = $this->object->formatJournal($journal, true); - - // transfer is not blue: - $this->assertFalse(str_contains($result, '')); - // transfer contains currency code: - $this->assertTrue(str_contains($result, $symbol)); - // all amounts are 100. - $this->assertTrue(str_contains($result, '100')); - } - - /** - * @covers FireflyIII\Support\Amount::formatJournal - */ - public function testFormatJournalWithdrawal() - { - /** @var \FireflyIII\Models\TransactionJournal $journal */ - $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); - $symbol = $journal->transactionCurrency->symbol; - - $result = $this->object->formatJournal($journal, true); - - // transfer is not blue: - $this->assertFalse(str_contains($result, '')); - // transfer contains currency code: - $this->assertTrue(str_contains($result, $symbol)); - // all amounts are 100. - $this->assertTrue(str_contains($result, '100')); - } - - /** - * @covers FireflyIII\Support\Amount::formatTransaction - */ - public function testFormatTransaction() - { - // is a withdrawal. - $transaction = FactoryMuffin::create('FireflyIII\Models\Transaction'); - $transaction->amount = -100; - $transaction->save(); - $result = $this->object->formatTransaction($transaction, true); - - - // withdrawal is red: - $this->assertTrue(str_contains($result, '')); - // all amounts are 100. - $this->assertTrue(str_contains($result, '100')); - } - - /** - * @covers FireflyIII\Support\Amount::formatWithSymbol - */ - public function testFormatWithSymbolColouredAboveZero() - { - $amount = 123; - $symbol = 'top'; - $coloured = true; - - $result = $this->object->formatWithSymbol($symbol, $amount, $coloured); - - // has colour: - $this->assertTrue(str_contains($result, '')); - // has symbol: - $this->assertTrue(str_contains($result, $symbol)); - // has amount: - $this->assertTrue(str_contains($result, '123')); - } - - /** - * @covers FireflyIII\Support\Amount::formatWithSymbol - */ - public function testFormatWithSymbolColouredBelowZero() - { - $amount = -123; - $symbol = 'top'; - $coloured = true; - - $result = $this->object->formatWithSymbol($symbol, $amount, $coloured); - - // has colour: - $this->assertTrue(str_contains($result, '')); - // has symbol: - $this->assertTrue(str_contains($result, $symbol)); - // has amount: - $this->assertTrue(str_contains($result, '123')); - } - - /** - * @covers FireflyIII\Support\Amount::formatWithSymbol - */ - public function testFormatWithSymbolColouredZero() - { - $amount = 0.0; - $symbol = 'top'; - $coloured = true; - - $result = $this->object->formatWithSymbol($symbol, $amount, $coloured); - - // has colour: - $this->assertTrue(str_contains($result, '#999')); - // has symbol: - $this->assertTrue(str_contains($result, $symbol)); - // has amount: - $this->assertTrue(str_contains($result, '0')); - } - - /** - * @covers FireflyIII\Support\Amount::formatWithSymbol - */ - public function testFormatWithSymbolNotColoured() - { - $amount = 0; - $symbol = 'top'; - $coloured = false; - - $result = $this->object->formatWithSymbol($symbol, $amount, $coloured); - - // has symbol: - $this->assertTrue(str_contains($result, $symbol)); - // has amount: - $this->assertTrue(str_contains($result, '0')); - } - - /** - * @covers FireflyIII\Support\Amount::getAllCurrencies - */ - public function testGetAllCurrencies() - { - $size = TransactionCurrency::count(); - $list = $this->object->getAllCurrencies(); - $this->assertCount($size, $list); - } - - /** - * @covers FireflyIII\Support\Amount::getCurrencyCode - */ - public function testGetCurrencyCode() - { - $code = $this->object->getCurrencyCode(); - $this->assertEquals('EUR', $code); - } - - /** - * @covers FireflyIII\Support\Amount::getCurrencyCode - */ - public function testGetCurrencyCodeNoSuchCurrency() - { - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - - // delete any currency preferences: - Preference::where('user_id', $user->id)->delete(); - - // delete transaction currencies: - foreach (TransactionCurrency::get() as $c) { - $c->delete(); - } - - $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); - $preference->user_id = $user->id; - $preference->name = 'currencyPreference'; - $preference->data = 'SOM'; - $preference->save(); - - Preferences::shouldReceive('get')->withArgs(['currencyPreference', 'EUR'])->andReturn($preference); - - $code = $this->object->getCurrencyCode(); - $this->assertEquals('EUR', $code); - } - - /** - * @covers FireflyIII\Support\Amount::getCurrencySymbol - */ - public function testGetCurrencySymbol() - { - // will the the euro: - $eur = TransactionCurrency::whereCode('EUR')->first(); - - $result = $this->object->getCurrencySymbol(); - $this->assertEquals($eur->symbol, $result); - } - - /** - * @covers FireflyIII\Support\Amount::getDefaultCurrency - */ - public function testGetDefaultCurrency() - { - // will the the euro: - $eur = TransactionCurrency::whereCode('EUR')->first(); - - $result = $this->object->getDefaultCurrency(); - $this->assertEquals($eur->id, $result->id); - } - - -} diff --git a/tests/support/ExpandedFormTest.php b/tests/support/ExpandedFormTest.php deleted file mode 100644 index cd15532dd0..0000000000 --- a/tests/support/ExpandedFormTest.php +++ /dev/null @@ -1,202 +0,0 @@ -object = new ExpandedForm; - $user = FactoryMuffin::create('FireflyIII\User'); - $this->be($user); - } - - /** - * @covers FireflyIII\Support\ExpandedForm::amount - * @covers FireflyIII\Support\ExpandedForm::label - * @covers FireflyIII\Support\ExpandedForm::expandOptionArray - * @covers FireflyIII\Support\ExpandedForm::getHolderClasses - * @covers FireflyIII\Support\ExpandedForm::fillFieldValue - */ - public function testAmount() - { - $result = $this->object->amount('abcde', '12.23', ['label' => 'Some Label']); - - $this->assertTrue(str_contains($result, '23')); - $this->assertTrue(str_contains($result, 'abcde_holder')); - } - - /** - * @covers FireflyIII\Support\ExpandedForm::balance - * @covers FireflyIII\Support\ExpandedForm::label - */ - public function testBalance() - { - $result = $this->object->balance('abcde', '12.23', []); - - $this->assertTrue(str_contains($result, '23')); - $this->assertTrue(str_contains($result, 'abcde_holder')); - } - - /** - * @covers FireflyIII\Support\ExpandedForm::checkbox - * @covers FireflyIII\Support\ExpandedForm::getHolderClasses - */ - public function testCheckbox() - { - // add error to session for this thing: - $errors = new MessageBag; - $errors->add('abcde', 'Some error here.'); - $this->session(['errors' => $errors]); - - $result = $this->object->checkbox('abcde', 1, true); - - - $this->assertTrue(str_contains($result, 'checked="checked"')); - $this->assertTrue(str_contains($result, 'abcde_holder')); - } - - /** - * @covers FireflyIII\Support\ExpandedForm::date - * @covers FireflyIII\Support\ExpandedForm::fillFieldValue - */ - public function testDate() - { - $preFilled = [ - 'abcde' => '1998-01-01' - ]; - $this->session(['preFilled' => $preFilled]); - - $result = $this->object->date('abcde'); - - $this->assertTrue(str_contains($result, '1998')); - $this->assertTrue(str_contains($result, 'type="date"')); - $this->assertTrue(str_contains($result, 'abcde_holder')); - } - - /** - * @covers FireflyIII\Support\ExpandedForm::integer - */ - public function testInteger() - { - $result = $this->object->integer('abcde', 12345); - - $this->assertTrue(str_contains($result, '12345')); - $this->assertTrue(str_contains($result, 'type="number"')); - $this->assertTrue(str_contains($result, 'step="1"')); - $this->assertTrue(str_contains($result, 'abcde_holder')); - } - - /** - * @covers FireflyIII\Support\ExpandedForm::location - */ - public function testLocation() - { - $result = $this->object->location('abcde'); - - $this->assertTrue(str_contains($result, 'id="clearLocation"')); - $this->assertTrue(str_contains($result, 'id="map-canvas"')); - $this->assertTrue(str_contains($result, 'abcde_holder')); - } - - /** - * @covers FireflyIII\Support\ExpandedForm::makeSelectList - */ - public function testMakeSelectList() - { - $collection = new Collection; - for ($i = 0; $i < 5; $i++) { - $collection->push(FactoryMuffin::create('FireflyIII\Models\Account')); - } - $result = $this->object->makeSelectList($collection, true); - - $this->assertCount(6, $result); - } - - /** - * @covers FireflyIII\Support\ExpandedForm::multiRadio - */ - public function testMultiRadio() - { - $list = [ - 'some' => 'BlaBla', - 'other' => 'ThisIsCool' - ]; - - $result = $this->object->multiRadio('abcde', $list); - - $this->assertTrue(str_contains($result, 'ThisIsCool')); - $this->assertTrue(str_contains($result, 'other')); - $this->assertTrue(str_contains($result, 'abcde_holder')); - } - - /** - * @covers FireflyIII\Support\ExpandedForm::optionsList - */ - public function testOptionsList() - { - $result = $this->object->optionsList('update', 'MotorCycle'); - $this->assertTrue(str_contains($result, 'MotorCycle')); - } - - /** - * @covers FireflyIII\Support\ExpandedForm::select - */ - public function testSelect() - { - $list = [ - 'some' => 'BlaBla', - 'other' => 'ThisIsCool' - ]; - - $result = $this->object->select('abcde', $list); - $this->assertTrue(str_contains($result, 'ThisIsCool')); - $this->assertTrue(str_contains($result, 'abcde_holder')); - } - - /** - * @covers FireflyIII\Support\ExpandedForm::tags - */ - public function testTags() - { - $result = $this->object->tags('abcde', 'some,tags'); - $this->assertTrue(str_contains($result, 'data-role="tagsinput"')); - $this->assertTrue(str_contains($result, 'abcde_holder')); - } - - /** - * @covers FireflyIII\Support\ExpandedForm::text - */ - public function testText() - { - $result = $this->object->text('abcde', 'MotorBike!'); - $this->assertTrue(str_contains($result, 'MotorBike!')); - $this->assertTrue(str_contains($result, 'abcde_holder')); - } - - /** - * @covers FireflyIII\Support\ExpandedForm::textarea - */ - public function testTextarea() - { - $result = $this->object->textarea('abcde', 'Pillow fight!'); - $this->assertTrue(str_contains($result, 'Pillow fight!')); - $this->assertTrue(str_contains($result, 'abcde_holder')); - } -} diff --git a/tests/support/NavigationTest.php b/tests/support/NavigationTest.php deleted file mode 100644 index 7e93a09e69..0000000000 --- a/tests/support/NavigationTest.php +++ /dev/null @@ -1,287 +0,0 @@ -object = new Navigation; - } - - /** - * @covers FireflyIII\Support\Navigation::addPeriod - */ - public function testAddPeriod() - { - $date = new Carbon('2015-01-01'); - - $result = $this->object->addPeriod($date, 'quarter', 0); - $this->assertEquals('2015-04-01', $result->format('Y-m-d')); - } - - /** - * @expectedException FireflyIII\Exceptions\FireflyException - * @expectedExceptionMessage Cannot do addPeriod for $repeat_freq "something" - * @covers FireflyIII\Support\Navigation::addPeriod - */ - public function testAddPeriodError() - { - $date = new Carbon('2015-01-01'); - - $this->object->addPeriod($date, 'something', 0); - - } - - /** - * @covers FireflyIII\Support\Navigation::endOfPeriod - */ - public function testEndOfPeriod() - { - $date = new Carbon('2015-01-01'); - - $result = $this->object->endOfPeriod($date, '1D'); - $this->assertEquals('2015-01-02', $result->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Support\Navigation::endOfPeriod - */ - public function testEndOfPeriodModifier() - { - $date = new Carbon('2015-01-01'); - - $result = $this->object->endOfPeriod($date, 'quarter'); - $this->assertEquals('2015-03-31', $result->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Support\Navigation::endOfPeriod - * @expectedException FireflyIII\Exceptions\FireflyException - * @expectedExceptionMessage Cannot do endOfPeriod for $repeat_freq "something" - */ - public function testEndOfPeriodModifierError() - { - $date = new Carbon('2015-01-01'); - - $this->object->endOfPeriod($date, 'something'); - } - - /** - * @covers FireflyIII\Support\Navigation::endOfX - */ - public function testEndOfX() - { - $date = new Carbon('2015-01-01'); - $maxEnd = new Carbon('2016-01-01'); - - $result = $this->object->endOfX($date, 'month', $maxEnd); - - $this->assertEquals('2015-01-31', $result->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Support\Navigation::endOfX - */ - public function testEndOfXBeyondMax() - { - $date = new Carbon('2015-01-01'); - $maxEnd = new Carbon('2015-01-15'); - - $result = $this->object->endOfX($date, 'monthly', $maxEnd); - - $this->assertEquals('2015-01-15', $result->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Support\Navigation::periodShow - */ - public function testPeriodShow() - { - $date = new Carbon('2015-01-01'); - $result = $this->object->periodShow($date, 'month'); - $this->assertEquals('January 2015', $result); - } - - /** - * @covers FireflyIII\Support\Navigation::periodShow - * @expectedException FireflyIII\Exceptions\FireflyException - * @expectedExceptionMessage No date formats for frequency "something" - */ - public function testPeriodShowError() - { - $date = new Carbon('2015-01-01'); - $this->object->periodShow($date, 'something'); - } - - - /** - * @covers FireflyIII\Support\Navigation::startOfPeriod - */ - public function testStartOfPeriod() - { - $date = new Carbon('2015-01-15'); - $result = $this->object->startOfPeriod($date, 'month'); - $this->assertEquals('2015-01-01', $result->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Support\Navigation::startOfPeriod - * @expectedException FireflyIII\Exceptions\FireflyException - * @expectedExceptionMessage Cannot do startOfPeriod for $repeat_freq "something" - */ - public function testStartOfPeriodError() - { - $date = new Carbon('2015-08-15'); - $this->object->startOfPeriod($date, 'something'); - } - - /** - * @covers FireflyIII\Support\Navigation::startOfPeriod - */ - public function testStartOfPeriodHalfYear() - { - $date = new Carbon('2015-01-15'); - $result = $this->object->startOfPeriod($date, 'half-year'); - $this->assertEquals('2015-01-01', $result->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Support\Navigation::startOfPeriod - */ - public function testStartOfPeriodHalfYearSecondHalf() - { - $date = new Carbon('2015-08-15'); - $result = $this->object->startOfPeriod($date, 'half-year'); - $this->assertEquals('2015-07-01', $result->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Support\Navigation::subtractPeriod - */ - public function testSubtractPeriod() - { - $date = new Carbon('2015-01-01'); - $result = $this->object->subtractPeriod($date, 'month'); - $this->assertEquals('2014-12-01', $result->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Support\Navigation::subtractPeriod - * @expectedException FireflyIII\Exceptions\FireflyException - * @expectedExceptionMessage Cannot do subtractPeriod for $repeat_freq "something" - */ - public function testSubtractPeriodError() - { - $date = new Carbon('2015-01-01'); - $this->object->subtractPeriod($date, 'something'); - } - - /** - * @covers FireflyIII\Support\Navigation::subtractPeriod - */ - public function testSubtractPeriodQuarter() - { - $date = new Carbon('2015-01-01'); - $result = $this->object->subtractPeriod($date, 'quarter'); - $this->assertEquals('2014-10-01', $result->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Support\Navigation::updateEndDate - */ - public function testUpdateEndDate() - { - $date = new Carbon('2015-01-15'); - $result = $this->object->updateEndDate('1M', $date); - $this->assertEquals('2015-01-31', $result->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Support\Navigation::updateEndDate - * @expectedException FireflyIII\Exceptions\FireflyException - * @expectedExceptionMessage updateEndDate cannot handle $range "something" - */ - public function testUpdateEndDateError() - { - $date = new Carbon('2015-01-15'); - $this->object->updateEndDate('something', $date); - } - - /** - * @covers FireflyIII\Support\Navigation::updateEndDate - */ - public function testUpdateEndDateHalf() - { - $date = new Carbon('2015-01-15'); - $result = $this->object->updateEndDate('6M', $date); - $this->assertEquals('2015-07-01', $result->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Support\Navigation::updateEndDate - */ - public function testUpdateEndDateSecondHalf() - { - $date = new Carbon('2015-08-15'); - $result = $this->object->updateEndDate('6M', $date); - $this->assertEquals('2015-12-31', $result->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Support\Navigation::updateStartDate - */ - public function testUpdateStartDate() - { - $date = new Carbon('2015-01-15'); - $result = $this->object->updateStartDate('1M', $date); - $this->assertEquals('2015-01-01', $result->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Support\Navigation::updateStartDate - */ - public function testUpdateStartDateHalf() - { - $date = new Carbon('2015-01-15'); - $result = $this->object->updateStartDate('6M', $date); - $this->assertEquals('2015-01-01', $result->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Support\Navigation::updateStartDate - */ - public function testUpdateStartDateSecondHalf() - { - $date = new Carbon('2015-09-15'); - $result = $this->object->updateStartDate('6M', $date); - $this->assertEquals('2015-07-01', $result->format('Y-m-d')); - } - - /** - * @covers FireflyIII\Support\Navigation::updateStartDate - * @expectedException FireflyIII\Exceptions\FireflyException - * @expectedExceptionMessage updateStartDate cannot handle $range "something" - */ - public function testUpdateStartDateError() - { - $date = new Carbon('2015-09-15'); - $this->object->updateStartDate('something', $date); - } - - -} \ No newline at end of file