mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-19 19:01:58 +00:00
New budget repository tests.
This commit is contained in:
@@ -25,21 +25,6 @@ class BudgetRepository implements BudgetRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function cleanupBudgets()
|
public function cleanupBudgets()
|
||||||
{
|
{
|
||||||
$limits = BudgetLimit::leftJoin('budgets', 'budgets.id', '=', 'budget_limits.budget_id')->get(['budget_limits.*']);
|
|
||||||
|
|
||||||
// loop budget limits:
|
|
||||||
$found = [];
|
|
||||||
/** @var BudgetLimit $limit */
|
|
||||||
foreach ($limits as $limit) {
|
|
||||||
$key = $limit->budget_id . '-' . $limit->startdate;
|
|
||||||
if (isset($found[$key])) {
|
|
||||||
$limit->delete();
|
|
||||||
} else {
|
|
||||||
$found[$key] = true;
|
|
||||||
}
|
|
||||||
unset($key);
|
|
||||||
}
|
|
||||||
|
|
||||||
// delete limits with amount 0:
|
// delete limits with amount 0:
|
||||||
BudgetLimit::where('amount', 0)->delete();
|
BudgetLimit::where('amount', 0)->delete();
|
||||||
|
|
||||||
|
@@ -1,5 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use FireflyIII\Models\Budget;
|
||||||
|
use FireflyIII\Models\BudgetLimit;
|
||||||
use FireflyIII\Repositories\Budget\BudgetRepository;
|
use FireflyIII\Repositories\Budget\BudgetRepository;
|
||||||
|
use League\FactoryMuffin\Facade as FactoryMuffin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generated by PHPUnit_SkeletonGenerator on 2015-05-05 at 19:16:07.
|
* Generated by PHPUnit_SkeletonGenerator on 2015-05-05 at 19:16:07.
|
||||||
@@ -32,14 +36,23 @@ class BudgetRepositoryTest extends TestCase
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers FireflyIII\Repositories\Budget\BudgetRepository::cleanupBudgets
|
* @covers FireflyIII\Repositories\Budget\BudgetRepository::cleanupBudgets
|
||||||
* @todo Implement testCleanupBudgets().
|
|
||||||
*/
|
*/
|
||||||
public function testCleanupBudgets()
|
public function testCleanupBudgets()
|
||||||
{
|
{
|
||||||
// Remove the following lines when you implement this test.
|
// create some budgets:
|
||||||
$this->markTestIncomplete(
|
for ($i = 0; $i < 3; $i++) {
|
||||||
'This test has not been implemented yet.'
|
$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());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -48,10 +61,11 @@ class BudgetRepositoryTest extends TestCase
|
|||||||
*/
|
*/
|
||||||
public function testDestroy()
|
public function testDestroy()
|
||||||
{
|
{
|
||||||
// Remove the following lines when you implement this test.
|
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
|
||||||
$this->markTestIncomplete(
|
|
||||||
'This test has not been implemented yet.'
|
$this->object->destroy($budget);
|
||||||
);
|
|
||||||
|
$this->assertCount(0, Budget::where('id', $budget->id)->whereNull('deleted_at')->get());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -60,94 +74,134 @@ class BudgetRepositoryTest extends TestCase
|
|||||||
*/
|
*/
|
||||||
public function testExpensesOnDay()
|
public function testExpensesOnDay()
|
||||||
{
|
{
|
||||||
// Remove the following lines when you implement this test.
|
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
|
||||||
$this->markTestIncomplete(
|
|
||||||
'This test has not been implemented yet.'
|
$result = $this->object->expensesOnDay($budget, new Carbon);
|
||||||
);
|
|
||||||
|
$this->assertEquals(0, $result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getActiveBudgets
|
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getActiveBudgets
|
||||||
* @todo Implement testGetActiveBudgets().
|
|
||||||
*/
|
*/
|
||||||
public function testGetActiveBudgets()
|
public function testGetActiveBudgets()
|
||||||
{
|
{
|
||||||
// Remove the following lines when you implement this test.
|
$budget1 = FactoryMuffin::create('FireflyIII\Models\Budget');
|
||||||
$this->markTestIncomplete(
|
$budget2 = FactoryMuffin::create('FireflyIII\Models\Budget');
|
||||||
'This test has not been implemented yet.'
|
$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
|
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getBudgetLimitRepetitions
|
||||||
* @todo Implement testGetBudgetLimitRepetitions().
|
|
||||||
*/
|
*/
|
||||||
public function testGetBudgetLimitRepetitions()
|
public function testGetBudgetLimitRepetitions()
|
||||||
{
|
{
|
||||||
// Remove the following lines when you implement this test.
|
$rep = FactoryMuffin::create('FireflyIII\Models\LimitRepetition');
|
||||||
$this->markTestIncomplete(
|
$limit = $rep->budgetlimit;
|
||||||
'This test has not been implemented yet.'
|
$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
|
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getBudgetLimits
|
||||||
* @todo Implement testGetBudgetLimits().
|
|
||||||
*/
|
*/
|
||||||
public function testGetBudgetLimits()
|
public function testGetBudgetLimits()
|
||||||
{
|
{
|
||||||
// Remove the following lines when you implement this test.
|
/** @var Budget $budget */
|
||||||
$this->markTestIncomplete(
|
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
|
||||||
'This test has not been implemented yet.'
|
$set = $this->object->getBudgetLimits($budget);
|
||||||
);
|
|
||||||
|
$this->assertCount(0, $set);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getBudgets
|
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getBudgets
|
||||||
* @todo Implement testGetBudgets().
|
|
||||||
*/
|
*/
|
||||||
public function testGetBudgets()
|
public function testGetBudgets()
|
||||||
{
|
{
|
||||||
// Remove the following lines when you implement this test.
|
$budget1 = FactoryMuffin::create('FireflyIII\Models\Budget');
|
||||||
$this->markTestIncomplete(
|
$budget2 = FactoryMuffin::create('FireflyIII\Models\Budget');
|
||||||
'This test has not been implemented yet.'
|
$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
|
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getCurrentRepetition
|
||||||
* @todo Implement testGetCurrentRepetition().
|
|
||||||
*/
|
*/
|
||||||
public function testGetCurrentRepetition()
|
public function testGetCurrentRepetition()
|
||||||
{
|
{
|
||||||
// Remove the following lines when you implement this test.
|
/** @var Budget $budget */
|
||||||
$this->markTestIncomplete(
|
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
|
||||||
'This test has not been implemented yet.'
|
$rep = $this->object->getCurrentRepetition($budget, new Carbon);
|
||||||
);
|
$this->assertNull($rep);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getFirstBudgetLimitDate
|
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getFirstBudgetLimitDate
|
||||||
* @todo Implement testGetFirstBudgetLimitDate().
|
|
||||||
*/
|
*/
|
||||||
public function testGetFirstBudgetLimitDate()
|
public function testGetFirstBudgetLimitDate()
|
||||||
{
|
{
|
||||||
// Remove the following lines when you implement this test.
|
/** @var BudgetLimit $budget */
|
||||||
$this->markTestIncomplete(
|
$limit = FactoryMuffin::create('FireflyIII\Models\BudgetLimit');
|
||||||
'This test has not been implemented yet.'
|
$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 BudgetLimit $budget */
|
||||||
|
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
|
||||||
|
$date = $this->object->getFirstBudgetLimitDate($budget);
|
||||||
|
$this->assertNull($date);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getInactiveBudgets
|
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getInactiveBudgets
|
||||||
* @todo Implement testGetInactiveBudgets().
|
|
||||||
*/
|
*/
|
||||||
public function testGetInactiveBudgets()
|
public function testGetInactiveBudgets()
|
||||||
{
|
{
|
||||||
// Remove the following lines when you implement this test.
|
$budget1 = FactoryMuffin::create('FireflyIII\Models\Budget');
|
||||||
$this->markTestIncomplete(
|
$budget2 = FactoryMuffin::create('FireflyIII\Models\Budget');
|
||||||
'This test has not been implemented yet.'
|
$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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user