Fixed tests.

This commit is contained in:
James Cole 2015-05-16 16:04:51 +02:00
parent 66c2951594
commit c576902501
4 changed files with 29 additions and 158 deletions

View File

@ -22,17 +22,13 @@ class ReportController extends Controller
/** @var ReportHelperInterface */
protected $helper;
/** @var ReportQueryInterface */
protected $query;
/**
* @param ReportHelperInterface $helper
* @param ReportQueryInterface $query
*/
public function __construct(ReportHelperInterface $helper, ReportQueryInterface $query)
public function __construct(ReportHelperInterface $helper)
{
parent::__construct();
$this->query = $query;
$this->helper = $helper;
View::share('title', trans('firefly.reports'));

View File

@ -39,7 +39,6 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase
FactoryMuffin::loadFactories(__DIR__ . '/factories');
if (!file_exists($copy)) {
Log::debug('Created new database.');
touch($original);
Artisan::call('migrate');
@ -49,12 +48,10 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase
$currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
$currency->code = 'EUR';
$currency->save();
Log::debug('Created new EUR currency.');
copy($original, $copy);
} else {
if (file_exists($copy)) {
Log::debug('Copied copy back over original.');
copy($copy, $original);
}
}

View File

@ -66,78 +66,27 @@ class ReportControllerTest extends TestCase
}
public function testModalBalancedTransfers()
{
$account = FactoryMuffin::create('FireflyIII\Models\Account');
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$journals = new Collection([$journal]);
$this->be($account->user);
$query = $this->mock('FireflyIII\Helpers\Report\ReportQueryInterface');
$query->shouldReceive('balancedTransactionsList')->withAnyArgs()->andReturn($journals);
$this->call('GET', '/reports/modal/' . $account->id . '/2015/1/balanced-transfers');
$this->assertResponseOk();
}
public function testModalLeftUnbalanced()
{
$account = FactoryMuffin::create('FireflyIII\Models\Account');
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$secondJournal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$group = FactoryMuffin::create('FireflyIII\Models\TransactionGroup');
$group->transactionjournals()->save($secondJournal);
$journals = new Collection([$journal, $secondJournal]);
$this->be($account->user);
$query = $this->mock('FireflyIII\Helpers\Report\ReportQueryInterface');
$query->shouldReceive('getTransactionsWithoutBudget')->withAnyArgs()->andReturn($journals);
$this->call('GET', '/reports/modal/' . $account->id . '/2015/1/left-unbalanced');
$this->assertResponseOk();
}
public function testModalNoBudget()
{
$account = FactoryMuffin::create('FireflyIII\Models\Account');
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$journals = new Collection([$journal]);
$this->be($account->user);
$query = $this->mock('FireflyIII\Helpers\Report\ReportQueryInterface');
$query->shouldReceive('getTransactionsWithoutBudget')->withAnyArgs()->andReturn($journals);
$this->call('GET', '/reports/modal/' . $account->id . '/2015/1/no-budget');
$this->assertResponseOk();
}
public function testMonth()
{
$user = FactoryMuffin::create('FireflyIII\User');
$account = FactoryMuffin::create('FireflyIII\Models\Account');
$budget1 = FactoryMuffin::create('FireflyIII\Models\Budget');
$user = FactoryMuffin::create('FireflyIII\User');
$account = FactoryMuffin::create('FireflyIII\Models\Account');
$budget1 = FactoryMuffin::create('FireflyIII\Models\Budget');
$budget1->queryAmount = 12;
$budget2 = FactoryMuffin::create('FireflyIII\Models\Budget');
$budget2 = FactoryMuffin::create('FireflyIII\Models\Budget');
$budget2->queryAmount = 0;
$this->be($user);
// mock!
$query = $this->mock('FireflyIII\Helpers\Report\ReportQueryInterface');
$helper = $this->mock('FireflyIII\Helpers\Report\ReportHelperInterface');
// fake!
$query->shouldReceive('incomeInPeriod')->andReturn([]);
$query->shouldReceive('journalsByExpenseAccount')->andReturn(new Collection);
$query->shouldReceive('getAllAccounts')->andReturn(new Collection([$account]));
$query->shouldReceive('getBudgetSummary')->andReturn(new Collection([$budget1, $budget2]));
$query->shouldReceive('journalsByBudget')->andReturn(new Collection);
$query->shouldReceive('journalsByCategory')->andReturn(new Collection);
$query->shouldReceive('balancedTransactionsSum')->andReturn(0);
$query->shouldReceive('sharedExpenses')->andReturn(new Collection);
$query->shouldReceive('sharedExpensesByCategory')->andReturn(new Collection);
$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);
$this->call('GET', '/reports/2015/1');
$this->assertResponseOk();
@ -145,25 +94,24 @@ class ReportControllerTest extends TestCase
public function testMonthShared()
{
$user = FactoryMuffin::create('FireflyIII\User');
$account = FactoryMuffin::create('FireflyIII\Models\Account');
$budget1 = FactoryMuffin::create('FireflyIII\Models\Budget');
$user = FactoryMuffin::create('FireflyIII\User');
$account = FactoryMuffin::create('FireflyIII\Models\Account');
$budget1 = FactoryMuffin::create('FireflyIII\Models\Budget');
$budget1->queryAmount = 12;
$budget2 = FactoryMuffin::create('FireflyIII\Models\Budget');
$budget2 = FactoryMuffin::create('FireflyIII\Models\Budget');
$budget2->queryAmount = 0;
$this->be($user);
// mock!
$query = $this->mock('FireflyIII\Helpers\Report\ReportQueryInterface');
$helper = $this->mock('FireflyIII\Helpers\Report\ReportHelperInterface');
// fake!
$query->shouldReceive('incomeInPeriod')->andReturn([]);
$query->shouldReceive('journalsByExpenseAccount')->andReturn(new Collection);
$query->shouldReceive('getAllAccounts')->andReturn(new Collection([$account]));
$query->shouldReceive('getBudgetSummary')->andReturn(new Collection([$budget1, $budget2]));
$query->shouldReceive('journalsByBudget')->andReturn(new Collection);
$query->shouldReceive('journalsByCategory')->andReturn(new Collection);
$query->shouldReceive('balancedTransactionsSum')->andReturn(0);
$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);
$this->call('GET', '/reports/2015/1/shared');
$this->assertResponseOk();
@ -189,16 +137,11 @@ class ReportControllerTest extends TestCase
$this->be($user);
$helper = $this->mock('FireflyIII\Helpers\Report\ReportHelperInterface');
$query = $this->mock('FireflyIII\Helpers\Report\ReportQueryInterface');
$helper->shouldReceive('yearBalanceReport')->once()->withAnyArgs()->andReturn([]);
$query->shouldReceive('getAllAccounts')->once()->withAnyArgs()->andReturn(new Collection([$account]));
$query->shouldReceive('incomeInPeriod')->once()->withAnyArgs()->andReturn(new Collection([$journal, $journal]));
$query->shouldReceive('expenseInPeriod')->once()->withAnyArgs()->andReturn(new Collection([$journal, $journal]));
$query->shouldReceive('journalsByRevenueAccount')->once()->withAnyArgs()->andReturn($journals);
$query->shouldReceive('journalsByExpenseAccount')->once()->withAnyArgs()->andReturn($journals);
$helper->shouldReceive('getAccountReport')->once()->withAnyArgs()->andReturn([]);
$helper->shouldReceive('getIncomeReport')->once()->withAnyArgs()->andReturn([]);
$helper->shouldReceive('getExpenseReport')->once()->withAnyArgs()->andReturn([]);
// mock stuff!
Amount::shouldReceive('getDefaultCurrency')->once()->andReturn($currency);

View File

@ -25,7 +25,8 @@ class ReportHelperTest extends TestCase
{
parent::setUp();
FactoryMuffin::create('FireflyIII\User');
$this->object = new ReportHelper;
$query = new \FireflyIII\Helpers\Report\ReportQuery();
$this->object = new ReportHelper($query);
}
/**
@ -37,72 +38,6 @@ class ReportHelperTest extends TestCase
parent::tearDown();
}
/**
* @covers FireflyIII\Helpers\Report\ReportHelper::getBudgetsForMonth
*/
public function testGetBudgetsForMonthWithShared()
{
$date = new Carbon('2015-01-01');
$user = FactoryMuffin::create('FireflyIII\User');
$budgets = [];
// three budget limits starting on the $date:
for ($i = 0; $i < 3; $i++) {
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$budgetLimit = FactoryMuffin::create('FireflyIII\Models\BudgetLimit');
$budgetLimit->startdate = $date;
$budget->user_id = $user->id;
$budget->save();
$budgetLimit->save();
$budgets[] = $budget;
}
$this->be($user);
$result = $this->object->getBudgetsForMonth($date, true);
// assert each budget is in the array:
foreach ($budgets as $budget) {
$id = $budget->id;
$this->assertEquals($budget->name, $result[$id]['name']);
}
$this->assertEquals(0, $result[0]['queryAmount']);
$this->assertEquals('No budget', $result[0]['name']);
}
/**
* @covers FireflyIII\Helpers\Report\ReportHelper::getBudgetsForMonth
*/
public function testGetBudgetsForMonthWithoutShared()
{
$date = new Carbon('2015-01-01');
$user = FactoryMuffin::create('FireflyIII\User');
$budgets = [];
// three budget limits starting on the $date:
for ($i = 0; $i < 3; $i++) {
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$budgetLimit = FactoryMuffin::create('FireflyIII\Models\BudgetLimit');
$budgetLimit->startdate = $date;
$budget->user_id = $user->id;
$budget->save();
$budgetLimit->save();
$budgets[] = $budget;
}
$this->be($user);
$result = $this->object->getBudgetsForMonth($date, false);
// assert each budget is in the array:
foreach ($budgets as $budget) {
$id = $budget->id;
$this->assertEquals($budget->name, $result[$id]['name']);
}
$this->assertEquals(0, $result[0]['queryAmount']);
$this->assertEquals('No budget', $result[0]['name']);
}
public function testListOfMonths()
{
// start of year up until now