mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2024-12-28 09:51:21 -06:00
Model tests.
This commit is contained in:
parent
0967ff9c7f
commit
8eeadffdeb
@ -38,14 +38,9 @@ class Component extends Firefly\Database\SingleTableInheritanceEntity
|
|||||||
protected $table = 'components';
|
protected $table = 'components';
|
||||||
protected $subclassField = 'class';
|
protected $subclassField = 'class';
|
||||||
|
|
||||||
public function transactions()
|
|
||||||
{
|
|
||||||
return $this->belongsToMany('Transaction');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function limits()
|
public function limits()
|
||||||
{
|
{
|
||||||
return $this->belongsTo('Limit');
|
return $this->hasMany('Limit');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function transactionjournals()
|
public function transactionjournals()
|
||||||
@ -53,6 +48,11 @@ class Component extends Firefly\Database\SingleTableInheritanceEntity
|
|||||||
return $this->belongsToMany('TransactionJournal');
|
return $this->belongsToMany('TransactionJournal');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function transactions()
|
||||||
|
{
|
||||||
|
return $this->belongsToMany('Transaction');
|
||||||
|
}
|
||||||
|
|
||||||
public function user()
|
public function user()
|
||||||
{
|
{
|
||||||
return $this->belongsTo('User');
|
return $this->belongsTo('User');
|
||||||
|
@ -105,11 +105,14 @@ class Limit extends Ardent
|
|||||||
try {
|
try {
|
||||||
$repetition->save();
|
$repetition->save();
|
||||||
\Log::debug('Created new repetition with id #' . $repetition->id);
|
\Log::debug('Created new repetition with id #' . $repetition->id);
|
||||||
|
// @codeCoverageIgnoreStart
|
||||||
} catch (QueryException $e) {
|
} catch (QueryException $e) {
|
||||||
// do nothing
|
// do nothing
|
||||||
|
|
||||||
\Log::error('Trying to save new Limitrepetition failed!');
|
\Log::error('Trying to save new Limitrepetition failed!');
|
||||||
\Log::error($e->getMessage());
|
\Log::error($e->getMessage());
|
||||||
}
|
}
|
||||||
|
// @codeCoverageIgnoreEnd
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,6 +121,7 @@ class Limit extends Ardent
|
|||||||
return $this->hasMany('LimitRepetition');
|
return $this->hasMany('LimitRepetition');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function getDates()
|
public function getDates()
|
||||||
{
|
{
|
||||||
return ['created_at', 'updated_at', 'startdate', 'enddate'];
|
return ['created_at', 'updated_at', 'startdate', 'enddate'];
|
||||||
|
116
app/tests/models/ModelTest.php
Normal file
116
app/tests/models/ModelTest.php
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
<?php
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Zizaco\FactoryMuff\Facade\FactoryMuff as f;
|
||||||
|
|
||||||
|
class ModelTest extends TestCase
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
Artisan::call('migrate');
|
||||||
|
Artisan::call('db:seed');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function tearDown()
|
||||||
|
{
|
||||||
|
Mockery::close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testAccount()
|
||||||
|
{
|
||||||
|
$account = f::create('Account');
|
||||||
|
$user = f::create('User');
|
||||||
|
$type = f::create('AccountType');
|
||||||
|
$account->user()->associate($user);
|
||||||
|
$account->accounttype()->associate($type);
|
||||||
|
|
||||||
|
$this->assertEquals($account->predict(new Carbon), null);
|
||||||
|
$this->assertEquals($account->balance(new Carbon), null);
|
||||||
|
$this->assertEquals($account->user_id, $user->id);
|
||||||
|
$this->assertEquals($account->account_type_id, $type->id);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testAccountType()
|
||||||
|
{
|
||||||
|
$account = f::create('Account');
|
||||||
|
$type = f::create('AccountType');
|
||||||
|
$type->accounts()->save($account);
|
||||||
|
|
||||||
|
$this->assertEquals($account->account_type_id, $type->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testBudget()
|
||||||
|
{
|
||||||
|
$budget = f::create('Budget');
|
||||||
|
$limit = f::create('Limit');
|
||||||
|
$journal = f::create('TransactionJournal');
|
||||||
|
$budget->limits()->save($limit);
|
||||||
|
$budget->transactionjournals()->save($journal);
|
||||||
|
|
||||||
|
$this->assertEquals($limit->component_id, $budget->id);
|
||||||
|
$this->assertEquals($journal->budgets()->first()->id, $budget->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCategory()
|
||||||
|
{
|
||||||
|
$category = f::create('Category');
|
||||||
|
$journal = f::create('TransactionJournal');
|
||||||
|
$category->transactionjournals()->save($journal);
|
||||||
|
|
||||||
|
$this->assertEquals($journal->categories()->first()->id, $category->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testComponent()
|
||||||
|
{
|
||||||
|
$component = f::create('Component');
|
||||||
|
$limit = f::create('Limit');
|
||||||
|
$component->limits()->save($limit);
|
||||||
|
$component->save();
|
||||||
|
|
||||||
|
$transaction = f::create('Transaction');
|
||||||
|
$journal = f::create('TransactionJournal');
|
||||||
|
$user = f::create('User');
|
||||||
|
|
||||||
|
|
||||||
|
$component->transactions()->save($transaction);
|
||||||
|
$component->transactionjournals()->save($journal);
|
||||||
|
$component->user()->associate($user);
|
||||||
|
|
||||||
|
$this->assertEquals($transaction->components()->first()->id, $component->id);
|
||||||
|
$this->assertEquals($journal->components()->first()->id, $component->id);
|
||||||
|
$this->assertEquals($limit->component()->first()->id, $component->id);
|
||||||
|
$this->assertEquals($component->user_id, $user->id);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testLimit()
|
||||||
|
{
|
||||||
|
$limit = f::create('Limit');
|
||||||
|
$budget = f::create('Budget');
|
||||||
|
$rep = f::create('LimitRepetition');
|
||||||
|
$limit->budget()->associate($budget);
|
||||||
|
$limit->limitrepetitions()->save($rep);
|
||||||
|
$rep->save();
|
||||||
|
$limit->save();
|
||||||
|
|
||||||
|
$this->assertEquals($rep->limit_id,$limit->id);
|
||||||
|
$this->assertEquals($limit->component_id, $budget->id);
|
||||||
|
|
||||||
|
// create repetition:
|
||||||
|
$start = new Carbon;
|
||||||
|
$list = ['daily','weekly','monthly','quarterly','half-year','yearly'];
|
||||||
|
foreach($list as $entry) {
|
||||||
|
$limit->repeat_freq = $entry;
|
||||||
|
$limit->createRepetition($start);
|
||||||
|
}
|
||||||
|
|
||||||
|
// try and fail:
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user