Fix tests

This commit is contained in:
James Cole
2019-09-06 17:19:21 +02:00
parent e9782a701f
commit 30f454d38a
12 changed files with 212 additions and 132 deletions

View File

@@ -193,6 +193,9 @@ trait RenderPartialViews
$categoryRepository = app(CategoryRepositoryInterface::class);
$category = $categoryRepository->findNull((int)$attributes['categoryId']);
$journals = $popupHelper->byCategory($category, $attributes);
if (null === $category) {
return 'This is an unknown category. Apologies.';
}
// @codeCoverageIgnoreStart
try {
$view = view('popup.report.category-entry', compact('journals', 'category'))->render();

View File

@@ -180,6 +180,7 @@ class BillControllerTest extends TestCase
'currency' => $this->getEuro(),
'currency_id' => $euro->id,
'currency_code' => $euro->code,
'pay_dates' => [],
'currency_symbol' => $euro->symbol,
'currency_decimal_places' => $euro->decimal_places,
]

View File

@@ -121,45 +121,10 @@ class ReportControllerTest extends TestCase
$expense = [
'accounts' => [
2 => ['sum' => '-100']]];
$tasker->shouldReceive('getIncomeReport')->once()->andReturn($income);
$tasker->shouldReceive('getExpenseReport')->once()->andReturn($expense);
$generator->shouldReceive('multiSet')->andReturn([]);
$this->be($this->user());
$response = $this->get(route('chart.report.operations', [1, '20120101', '20120131']));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\ReportController
*/
public function testSum(): void
{
$generator = $this->mock(GeneratorInterface::class);
$tasker = $this->mock(AccountTaskerInterface::class);
$currencyRepos = $this->mock(CurrencyRepositoryInterface::class);
$fiscalHelper = $this->mock(FiscalHelperInterface::class);
$date = new Carbon;
$this->mockDefaultSession();
Preferences::shouldReceive('lastActivity')->atLeast()->once()->andReturn('md512345');
$fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date);
$fiscalHelper->shouldReceive('startOfFiscalYear')->atLeast()->once()->andReturn($date);
$income = [
'accounts' => [
1 => ['sum' => '100']]];
$expense = [
'accounts' => [
2 => ['sum' => '-100']]];
$tasker->shouldReceive('getIncomeReport')->andReturn($income)->times(1);
$tasker->shouldReceive('getExpenseReport')->andReturn($expense)->times(1);
$generator->shouldReceive('multiSet')->andReturn([]);
$this->be($this->user());
$response = $this->get(route('chart.report.sum', [1, '20120101', '20120131']));
$response->assertStatus(200);
}
}

View File

@@ -29,10 +29,12 @@ use FireflyIII\Helpers\Fiscal\FiscalHelperInterface;
use FireflyIII\Models\Preference;
use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Tag\OperationsRepositoryInterface;
use FireflyIII\Repositories\Tag\TagRepositoryInterface;
use Illuminate\Support\Collection;
use Log;
use Preferences;
use Tests\Support\TestDataTrait;
use Tests\TestCase;
/**
@@ -43,6 +45,7 @@ use Tests\TestCase;
*/
class TagReportControllerTest extends TestCase
{
use TestDataTrait;
/**
*
*/
@@ -52,61 +55,6 @@ class TagReportControllerTest extends TestCase
Log::info(sprintf('Now in %s.', get_class($this)));
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\TagReportController
*/
public function testAccountExpense(): void
{
$generator = $this->mock(GeneratorInterface::class);
$tagRepos = $this->mock(TagRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$tag = $this->user()->tags()->first();
$this->mockDefaultSession();
$tagRepos->shouldReceive('setUser');
$tagRepos->shouldReceive('get')->andReturn(new Collection([$tag]));
$fiscalHelper = $this->mock(FiscalHelperInterface::class);
$date = new Carbon;
$fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date);
$fiscalHelper->shouldReceive('startOfFiscalYear')->atLeast()->once()->andReturn($date);
$generator->shouldReceive('pieChart')->andReturn([])->once();
$this->be($this->user());
$response = $this->get(route('chart.tag.account-expense', ['1', $tag->tag, '20120101', '20120131', 0]));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\TagReportController
*/
public function testAccountIncome(): void
{
$generator = $this->mock(GeneratorInterface::class);
$tagRepos = $this->mock(TagRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$tag = $this->user()->tags()->first();
$tagRepos->shouldReceive('setUser');
$tagRepos->shouldReceive('get')->andReturn(new Collection([$tag]));
$this->mockDefaultSession();
$fiscalHelper = $this->mock(FiscalHelperInterface::class);
$date = new Carbon;
$fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date);
$fiscalHelper->shouldReceive('startOfFiscalYear')->atLeast()->once()->andReturn($date);
$generator->shouldReceive('pieChart')->andReturn([])->once();
$this->be($this->user());
$response = $this->get(route('chart.tag.account-income', ['1', $tag->tag, '20120101', '20120131', 0]));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\TagReportController
@@ -116,6 +64,12 @@ class TagReportControllerTest extends TestCase
$generator = $this->mock(GeneratorInterface::class);
$tagRepos = $this->mock(TagRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$opsRepos = $this->mock(OperationsRepositoryInterface::class);
$opsRepos->shouldReceive('listExpenses')->atLeast()->once()->andReturn($this->tagListExpenses());
$tag = $this->user()->tags()->first();
$tagRepos->shouldReceive('setUser');
$tagRepos->shouldReceive('get')->andReturn(new Collection([$tag]));
@@ -127,7 +81,7 @@ class TagReportControllerTest extends TestCase
$fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date);
$fiscalHelper->shouldReceive('startOfFiscalYear')->atLeast()->once()->andReturn($date);
$generator->shouldReceive('pieChart')->andReturn([])->once();
$generator->shouldReceive('multiCurrencyPieChart')->andReturn([])->once();
$this->be($this->user());
$response = $this->get(route('chart.tag.budget-expense', ['1', $tag->tag, '20120101', '20120131', 0]));
@@ -142,10 +96,13 @@ class TagReportControllerTest extends TestCase
$generator = $this->mock(GeneratorInterface::class);
$tagRepos = $this->mock(TagRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$opsRepos = $this->mock(OperationsRepositoryInterface::class);
$tag = $this->user()->tags()->first();
$tagRepos->shouldReceive('setUser');
$tagRepos->shouldReceive('get')->andReturn(new Collection([$tag]));
$opsRepos->shouldReceive('listExpenses')->atLeast()->once()->andReturn($this->tagListExpenses());
$this->mockDefaultSession();
$fiscalHelper = $this->mock(FiscalHelperInterface::class);
@@ -153,7 +110,7 @@ class TagReportControllerTest extends TestCase
$fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date);
$fiscalHelper->shouldReceive('startOfFiscalYear')->atLeast()->once()->andReturn($date);
$generator->shouldReceive('pieChart')->andReturn([])->once();
$generator->shouldReceive('multiCurrencyPieChart')->andReturn([])->once();
$this->be($this->user());
$response = $this->get(route('chart.tag.category-expense', ['1', $tag->tag, '20120101', '20120131', 0]));
@@ -172,6 +129,10 @@ class TagReportControllerTest extends TestCase
$collector = $this->mock(GroupCollectorInterface::class);
$tagRepos = $this->mock(TagRepositoryInterface::class);
$fiscalHelper = $this->mock(FiscalHelperInterface::class);
$opsRepos = $this->mock(OperationsRepositoryInterface::class);
$opsRepos->shouldReceive('listExpenses')->atLeast()->once()->andReturn($this->tagListExpenses());
$opsRepos->shouldReceive('listIncome')->atLeast()->once()->andReturn($this->tagListIncome());
$withdrawal = $this->getRandomWithdrawalAsArray();
$tag = $this->user()->tags()->where('tag', 'Expensive')->first();
@@ -183,22 +144,14 @@ class TagReportControllerTest extends TestCase
$tagRepos->shouldReceive('setUser');
$tagRepos->shouldReceive('get')->andReturn(new Collection([$tag]));
Preferences::shouldReceive('lastActivity')->atLeast()->once()->andReturn('md512345');
Preferences::shouldReceive('get')->withArgs(['customFiscalYear', false])->andReturn($false);
$fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date);
$fiscalHelper->shouldReceive('startOfFiscalYear')->atLeast()->once()->andReturn($date);
$collector->shouldReceive('setAccounts')->andReturnSelf()->atLeast()->once();
$collector->shouldReceive('setRange')->andReturnSelf()->atLeast()->once();
$collector->shouldReceive('setTypes')->withArgs([[TransactionType::WITHDRAWAL, TransactionType::TRANSFER]])->andReturnSelf()->atLeast()->once();
$collector->shouldReceive('setTypes')->withArgs([[TransactionType::DEPOSIT, TransactionType::TRANSFER]])->andReturnSelf()->atLeast()->once();
$collector->shouldReceive('setTags')->andReturnSelf()->atLeast()->once();
$collector->shouldReceive('withAccountInformation')->andReturnSelf()->atLeast()->once();
$collector->shouldReceive('getExtractedJournals')->andReturn([$withdrawal])->atLeast()->once();
$generator->shouldReceive('multiSet')->andReturn([])->once()->atLeast()->once();
$this->be($this->user());
$response = $this->get(route('chart.tag.main', ['1', $tag->tag, '20120101', '20120131']));
$response = $this->get(route('chart.tag.main', ['1', $tag->id, '20120101', '20120131']));
$response->assertStatus(200);
}
@@ -210,7 +163,12 @@ class TagReportControllerTest extends TestCase
$this->mockDefaultSession();
$generator = $this->mock(GeneratorInterface::class);
$tagRepos = $this->mock(TagRepositoryInterface::class);
$opsRepos = $this->mock(OperationsRepositoryInterface::class);
$opsRepos->shouldReceive('listExpenses')->atLeast()->once()->andReturn($this->tagListExpenses());
$this->mock(AccountRepositoryInterface::class);
$tag = $this->user()->tags()->first();
$tagRepos->shouldReceive('setUser');
$tagRepos->shouldReceive('get')->andReturn(new Collection([$tag]));
@@ -220,7 +178,7 @@ class TagReportControllerTest extends TestCase
$fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date);
$fiscalHelper->shouldReceive('startOfFiscalYear')->atLeast()->once()->andReturn($date);
$generator->shouldReceive('pieChart')->andReturn([])->once();
$generator->shouldReceive('multiCurrencyPieChart')->andReturn([])->once();
$this->be($this->user());
$response = $this->get(route('chart.tag.tag-expense', ['1', $tag->tag, '20120101', '20120131', 0]));
@@ -236,6 +194,10 @@ class TagReportControllerTest extends TestCase
$generator = $this->mock(GeneratorInterface::class);
$tagRepos = $this->mock(TagRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$opsRepos = $this->mock(OperationsRepositoryInterface::class);
$opsRepos->shouldReceive('listIncome')->atLeast()->once()->andReturn($this->tagListIncome());
$tag = $this->user()->tags()->first();
$tagRepos->shouldReceive('setUser');
$tagRepos->shouldReceive('get')->andReturn(new Collection([$tag]));
@@ -245,7 +207,7 @@ class TagReportControllerTest extends TestCase
$fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date);
$fiscalHelper->shouldReceive('startOfFiscalYear')->atLeast()->once()->andReturn($date);
$generator->shouldReceive('pieChart')->andReturn([])->once();
$generator->shouldReceive('multiCurrencyPieChart')->andReturn([])->once();
$this->be($this->user());
$response = $this->get(route('chart.tag.tag-income', ['1', $tag->tag, '20120101', '20120131', 0]));

View File

@@ -29,7 +29,9 @@ use FireflyIII\Helpers\Report\NetWorthInterface;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\Repositories\Budget\AvailableBudgetRepositoryInterface;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\Budget\OperationsRepositoryInterface;
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use Illuminate\Support\Collection;
use Log;
@@ -67,14 +69,16 @@ class BoxControllerTest extends TestCase
];
$repository = $this->mock(BudgetRepositoryInterface::class);
$currencyRepos = $this->mock(CurrencyRepositoryInterface::class);
$opsRepository = $this->mock(OperationsRepositoryInterface::class);
$abRepository = $this->mock(AvailableBudgetRepositoryInterface::class);
Preferences::shouldReceive('lastActivity')->atLeast()->once()->andReturn('md512345');
Amount::shouldReceive('formatAnything')->atLeast()->once()->andReturn('-100');
$repository->shouldReceive('getAvailableBudget')->andReturn('1000');
$abRepository->shouldReceive('getAvailableBudget')->andReturn('1000');
$repository->shouldReceive('getActiveBudgets')->andReturn(new Collection);
$repository->shouldReceive('collectBudgetInformation')->andReturn($return);
$opsRepository->shouldReceive('collectBudgetInformation')->andReturn($return);
$this->be($this->user());
$response = $this->get(route('json.box.available'));
@@ -95,14 +99,16 @@ class BoxControllerTest extends TestCase
];
$repository = $this->mock(BudgetRepositoryInterface::class);
$currencyRepos = $this->mock(CurrencyRepositoryInterface::class);
$opsRepository = $this->mock(OperationsRepositoryInterface::class);
$abRepository = $this->mock(AvailableBudgetRepositoryInterface::class);
Preferences::shouldReceive('lastActivity')->atLeast()->once()->andReturn('md512345');
Amount::shouldReceive('formatAnything')->atLeast()->once()->andReturn('-100');
$repository->shouldReceive('getAvailableBudget')->andReturn('1000');
$abRepository->shouldReceive('getAvailableBudget')->andReturn('1000');
$repository->shouldReceive('getActiveBudgets')->andReturn(new Collection);
$repository->shouldReceive('collectBudgetInformation')->andReturn($return);
$opsRepository->shouldReceive('collectBudgetInformation')->andReturn($return);
$this->be($this->user());
$response = $this->get(route('json.box.available'));

View File

@@ -72,6 +72,8 @@ class IndexControllerTest extends TestCase
$pref->data = 50;
Preferences::shouldReceive('get')->withArgs(['listPageSize', 50])->atLeast()->once()->andReturn($pref);
$repository->shouldReceive('getOccurrencesInRange')->atLeast()->once()->andReturn([]);
$this->mockDefaultSession();
$transformer->shouldReceive('setParameters')->atLeast()->once();
@@ -126,6 +128,8 @@ class IndexControllerTest extends TestCase
$pref->data = 50;
Preferences::shouldReceive('get')->withArgs(['listPageSize', 50])->atLeast()->once()->andReturn($pref);
$repository->shouldReceive('getOccurrencesInRange')->atLeast()->once()->andReturn([]);
$this->mockDefaultSession();
$transformer->shouldReceive('setParameters')->atLeast()->once();

View File

@@ -24,6 +24,8 @@ namespace Tests\Feature\Controllers\Report;
use Carbon\Carbon;
use FireflyIII\Helpers\Fiscal\FiscalHelperInterface;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use Illuminate\Support\Collection;
use Log;
use Preferences;
use Tests\TestCase;
@@ -54,9 +56,12 @@ class BalanceControllerTest extends TestCase
{
$this->mockDefaultSession();
$fiscalHelper = $this->mock(FiscalHelperInterface::class);
$repository = $this->mock(BudgetRepositoryInterface::class);
$date = new Carbon;
$budget = $this->getRandomBudget();
$repository->shouldReceive('getBudgets')->atLeast()->once()->andReturn(new Collection([$budget]));
Preferences::shouldReceive('lastActivity')->atLeast()->once()->andReturn('md512345');
$fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date);
$fiscalHelper->shouldReceive('startOfFiscalYear')->atLeast()->once()->andReturn($date);

View File

@@ -22,13 +22,17 @@ declare(strict_types=1);
namespace Tests\Feature\Controllers\Report;
use Amount;
use Carbon\Carbon;
use FireflyIII\Helpers\Fiscal\FiscalHelperInterface;
use FireflyIII\Repositories\Budget\BudgetLimitRepositoryInterface;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\Budget\NoBudgetRepositoryInterface;
use FireflyIII\Repositories\Budget\OperationsRepositoryInterface;
use Illuminate\Support\Collection;
use Log;
use Amount;
use Preferences;
use Tests\Support\TestDataTrait;
use Tests\TestCase;
/**
@@ -40,6 +44,7 @@ use Tests\TestCase;
*/
class BudgetControllerTest extends TestCase
{
use TestDataTrait;
/**
*
*/
@@ -56,12 +61,24 @@ class BudgetControllerTest extends TestCase
public function testGeneral(): void
{
$this->mockDefaultSession();
$return = [];
$fiscalHelper = $this->mock(FiscalHelperInterface::class);
$opsRepos = $this->mock(OperationsRepositoryInterface::class);
$repository = $this->mock(BudgetRepositoryInterface::class);
$blRepos = $this->mock(BudgetLimitRepositoryInterface::class);
$nbRepos = $this->mock(NoBudgetRepositoryInterface::class);
$budget = $this->getRandomBudget();
$limit = $this->getRandomBudgetLimit();
$repository->shouldReceive('getBudgets')->atLeast()->once()->andReturn(new Collection([$budget]));
$blRepos->shouldReceive('getBudgetLimits')->atLeast()->once()->andReturn(new Collection([$limit]));
$opsRepos->shouldReceive('sumExpenses')->atLeast()->once()->andReturn([]);
$nbRepos->shouldReceive('sumExpenses')->atLeast()->once()->andReturn([]);
$date = new Carbon;
Preferences::shouldReceive('lastActivity')->atLeast()->once()->andReturn('md512345');
//Amount::shouldReceive('formatAnything')->atLeast()->once()->andReturn('x');
//Preferences::shouldReceive('lastActivity')->atLeast()->once()->andReturn('md512345');
Amount::shouldReceive('formatAnything')->atLeast()->once()->andReturn('x');
$fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date);
$fiscalHelper->shouldReceive('startOfFiscalYear')->atLeast()->once()->andReturn($date);
@@ -80,8 +97,14 @@ class BudgetControllerTest extends TestCase
$second = ['entries' => ['1', '1']];
$repository = $this->mock(BudgetRepositoryInterface::class);
$fiscalHelper = $this->mock(FiscalHelperInterface::class);
$repository = $this->mock(BudgetRepositoryInterface::class);
$blRepos = $this->mock(BudgetLimitRepositoryInterface::class);
$nbRepos = $this->mock(NoBudgetRepositoryInterface::class);
$opsRepos = $this->mock(OperationsRepositoryInterface::class);
$date = new Carbon;
$opsRepos->shouldReceive('listExpenses')->atLeast()->once()->andReturn($this->budgetListExpenses());
Preferences::shouldReceive('lastActivity')->atLeast()->once()->andReturn('md512345');
//Amount::shouldReceive('formatAnything')->atLeast()->once()->andReturn('x');
$fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date);

View File

@@ -69,7 +69,7 @@ class ReportControllerTest extends TestCase
/**
* @covers \FireflyIII\Http\Controllers\ReportController
*/
public function testAccountReport(): void
public function testDoubleReport(): void
{
$this->mockDefaultSession();
$this->mock(ReportHelperInterface::class);
@@ -92,7 +92,7 @@ class ReportControllerTest extends TestCase
$generator->shouldReceive('generate')->once()->andReturn('here-be-report');
$this->be($this->user());
$response = $this->get(route('reports.report.account', [$account->id, $expense->id, '20160101', '20161231']));
$response = $this->get(route('reports.report.double', [$account->id, $expense->id, '20160101', '20161231']));
$response->assertStatus(200);
}
@@ -290,7 +290,7 @@ class ReportControllerTest extends TestCase
/**
* @covers \FireflyIII\Http\Controllers\ReportController
*/
public function testOptionsAccount(): void
public function testOptionsDouble(): void
{
Log::debug(sprintf('Now in test %s', __METHOD__));
$this->mockDefaultSession();
@@ -304,11 +304,11 @@ class ReportControllerTest extends TestCase
$collection = new Collection([$account]);
$repository->shouldReceive('getActiveAccountsByType')->withArgs([[AccountType::EXPENSE]])->once()->andReturn($collection);
$repository->shouldReceive('getActiveAccountsByType')->withArgs([[AccountType::REVENUE]])->once()->andReturn($collection);
$repository->shouldReceive('getActiveAccountsByType')->withArgs([[AccountType::EXPENSE, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]])->once()->andReturn($collection);
$repository->shouldReceive('getActiveAccountsByType')->withArgs([[AccountType::REVENUE, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]])->once()->andReturn($collection);
$this->be($this->user());
$response = $this->get(route('reports.options', ['account']));
$response = $this->get(route('reports.options', ['double']));
$response->assertStatus(200);
}
@@ -376,7 +376,7 @@ class ReportControllerTest extends TestCase
* @covers \FireflyIII\Http\Controllers\ReportController
* @covers \FireflyIII\Http\Requests\ReportFormRequest
*/
public function testPostIndexAccountError(): void
public function testPostIndexDoubleError(): void
{
Log::debug(sprintf('Now in test %s', __METHOD__));
$this->mockDefaultSession();
@@ -395,9 +395,9 @@ class ReportControllerTest extends TestCase
$data = [
'accounts' => ['1'],
'exp_rev' => ['4'],
'double' => ['4'],
'daterange' => '2016-01-01 - 2016-01-31',
'report_type' => 'account',
'report_type' => 'double',
];
$this->be($this->user());
@@ -411,7 +411,7 @@ class ReportControllerTest extends TestCase
* @covers \FireflyIII\Http\Controllers\ReportController
* @covers \FireflyIII\Http\Requests\ReportFormRequest
*/
public function testPostIndexAccountOK(): void
public function testPostIndexDoubleOK(): void
{
Log::debug(sprintf('Now in test %s', __METHOD__));
$this->mockDefaultSession();
@@ -425,15 +425,15 @@ class ReportControllerTest extends TestCase
$data = [
'accounts' => ['1'],
'exp_rev' => ['4'],
'double' => ['4'],
'daterange' => '2016-01-01 - 2016-01-31',
'report_type' => 'account',
'report_type' => 'double',
];
$this->be($this->user());
$response = $this->post(route('reports.index.post'), $data);
$response->assertStatus(302);
$response->assertRedirect(route('reports.report.account', ['1', '1', '20160101', '20160131']));
$response->assertRedirect(route('reports.report.double', ['1', '1', '20160101', '20160131']));
}
/**

View File

@@ -85,6 +85,108 @@ trait TestDataTrait
return $data;
}
/**
* Method that returns default data for when the tag OperationsRepos
* "listExpenses" method is called.
*
* @return array
*/
protected function tagListExpenses(): array
{
$eur = TransactionCurrency::where('code', 'EUR')->first();
$usd = TransactionCurrency::where('code', 'USD')->first();
$tag1 = $this->user()->tags()->inRandomOrder()->first();
$tag2 = $this->user()->tags()->inRandomOrder()->where('id', '!=', $tag1->id)->first();
$data = [];
$amount = 400;
$date = null;
try {
$amount = random_int(100, 2500);
$date = new Carbon;
} catch (Exception $e) {
$e->getMessage();
}
$amount = bcmul((string)round($amount / 100, 2), '-1');
foreach ([$eur, $usd] as $currency) {
$data[$currency->id] = [
'currency_id' => $currency->id,
'currency_name' => $currency->name,
'currency_symbol' => $currency->symbol,
'currency_code' => $currency->code,
'currency_decimal_places' => $currency->decimal_places,
'categories' => [],
];
foreach ([$tag1, $tag2] as $tag) {
$data[$currency->id]['tags'][$tag->id] = [
'id' => $tag->id,
'name' => $tag->tag,
'transaction_journals' => [],
];
// add two random amounts:
for ($i = 0; $i < 2; $i++) {
$data[$currency->id]['categories'][$tag->id]['transaction_journals'][$i] = [
'amount' => $amount,
'date' => $date,
];
}
}
}
return $data;
}
/**
* Method that returns default data for when the tag OperationsRepos
* "listIncome" method is called.
*
* @return array
*/
protected function tagListIncome(): array
{
$eur = TransactionCurrency::where('code', 'EUR')->first();
$usd = TransactionCurrency::where('code', 'USD')->first();
$tag1 = $this->user()->tags()->inRandomOrder()->first();
$tag2 = $this->user()->tags()->inRandomOrder()->where('id', '!=', $tag1->id)->first();
$data = [];
$amount = 400;
$date = null;
try {
$amount = random_int(100, 2500);
$date = new Carbon;
} catch (Exception $e) {
$e->getMessage();
}
$amount = (string)round($amount / 100, 2);
foreach ([$eur, $usd] as $currency) {
$data[$currency->id] = [
'currency_id' => $currency->id,
'currency_name' => $currency->name,
'currency_symbol' => $currency->symbol,
'currency_code' => $currency->code,
'currency_decimal_places' => $currency->decimal_places,
'categories' => [],
];
foreach ([$tag1, $tag2] as $tag) {
$data[$currency->id]['tags'][$tag->id] = [
'id' => $tag->id,
'name' => $tag->tag,
'transaction_journals' => [],
];
// add two random amounts:
for ($i = 0; $i < 2; $i++) {
$data[$currency->id]['categories'][$tag->id]['transaction_journals'][$i] = [
'amount' => $amount,
'date' => $date,
];
}
}
}
return $data;
}
/**
* Method that returns default data for when the category OperationsRepos
* "listExpenses" method is called.

View File

@@ -32,7 +32,6 @@ use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use Illuminate\Support\Collection;
use Log;
use Mockery;
use Steam;
use Tests\TestCase;
@@ -76,6 +75,7 @@ class MonthReportGeneratorTest extends TestCase
'source_id' => $asset->id,
'source_name' => $asset->name,
'transaction_journal_id' => 1,
'destination_account_id' => 8,
],
[
'description' => 'Hello2',
@@ -86,6 +86,7 @@ class MonthReportGeneratorTest extends TestCase
'source_id' => $asset->id,
'source_name' => $asset->name,
'transaction_journal_id' => 1,
'destination_account_id' => 8,
],
];
@@ -105,13 +106,15 @@ class MonthReportGeneratorTest extends TestCase
// mock calls
Steam::shouldReceive('balance')->times(2)->andReturn('100');
$accountRepos->shouldReceive('setUser')->once();
//$accountRepos->shouldReceive('getMetaValue')->withArgs([Mockery::any(), 'currency_id'])->andReturn('1')->once();
$accountRepos->shouldReceive('getAccountCurrency')->atLeast()->once()->andReturn($euro);
// mock collector:
$collector->shouldReceive('setAccounts')->atLeast()->once()->andReturnSelf();
$collector->shouldReceive('setRange')->atLeast()->once()->andReturnSelf();
$collector->shouldReceive('withAccountInformation')->atLeast()->once()->andReturnSelf();
$collector->shouldReceive('withBudgetInformation')->atLeast()->once()->andReturnSelf();
$collector->shouldReceive('withCategoryInformation')->atLeast()->once()->andReturnSelf();
$collector->shouldReceive('withBillInformation')->atLeast()->once()->andReturnSelf();
$collector->shouldReceive('getExtractedJournals')->atLeast()->once()->andReturn($return);
//$currencyRepos->shouldReceive('findNull')->withArgs([1])->andReturn($euro)->once();

View File

@@ -26,6 +26,8 @@ namespace Tests\Unit\Transformers;
use Carbon\Carbon;
use FireflyIII\Models\AvailableBudget;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\Budget\NoBudgetRepositoryInterface;
use FireflyIII\Repositories\Budget\OperationsRepositoryInterface;
use FireflyIII\Transformers\AvailableBudgetTransformer;
use Illuminate\Support\Collection;
use Log;
@@ -56,7 +58,9 @@ class AvailableBudgetTransformerTest extends TestCase
*/
public function testBasic(): void
{
$repository = $this->mock(BudgetRepositoryInterface::class);
$repository = $this->mock(BudgetRepositoryInterface::class);
$opsRepository = $this->mock(OperationsRepositoryInterface::class);
$nbRepos = $this->mock(NoBudgetRepositoryInterface::class);
$repository->shouldReceive('setUser')->atLeast()->once();
/** @var AvailableBudget $availableBudget */
@@ -93,12 +97,14 @@ class AvailableBudgetTransformerTest extends TestCase
];
$budget = $this->getRandomBudget();
$repository = $this->mock(BudgetRepositoryInterface::class);
$budget = $this->getRandomBudget();
$repository = $this->mock(BudgetRepositoryInterface::class);
$opsRepository = $this->mock(OperationsRepositoryInterface::class);
$nbRepos = $this->mock(NoBudgetRepositoryInterface::class);
$repository->shouldReceive('setUser')->atLeast()->once();
$repository->shouldReceive('getActiveBudgets')->atLeast()->once()->andReturn(new Collection([$budget]));
$repository->shouldReceive('spentInPeriodMc')->atLeast()->once()->andReturn($data);
$repository->shouldReceive('spentInPeriodWoBudgetMc')->atLeast()->once()->andReturn($data);
$opsRepository->shouldReceive('spentInPeriodMc')->atLeast()->once()->andReturn($data);
$nbRepos->shouldReceive('spentInPeriodWoBudgetMc')->atLeast()->once()->andReturn($data);
// spentInPeriodWoBudgetMc