diff --git a/app/models/Piggybank.php b/app/models/Piggybank.php index e2831b0189..8740e6c61c 100644 --- a/app/models/Piggybank.php +++ b/app/models/Piggybank.php @@ -148,14 +148,4 @@ class PiggyBank extends Eloquent { return $this->morphMany('Reminder', 'remindersable'); } - - - /** - * @return \Illuminate\Database\Eloquent\Relations\HasMany - */ - public function transactions() - { - return $this->hasMany('Transaction'); - } - -} \ No newline at end of file +} \ No newline at end of file diff --git a/app/models/PiggybankRepetition.php b/app/models/PiggybankRepetition.php index 87caff4452..c3ca79f0e7 100644 --- a/app/models/PiggybankRepetition.php +++ b/app/models/PiggybankRepetition.php @@ -38,7 +38,7 @@ class PiggyBankRepetition extends Eloquent */ public function scopeStarts(Builder $query, Carbon $date) { - $query->where('startdate', $date->format('Y-m-d')); + $query->where('startdate', $date->format('Y-m-d 00:00:00')); } /** @@ -47,7 +47,7 @@ class PiggyBankRepetition extends Eloquent */ public function scopeTargets(Builder $query, Carbon $date) { - $query->where('targetdate', $date->format('Y-m-d')); + $query->where('targetdate', $date->format('Y-m-d 00:00:00')); } diff --git a/app/models/Reminder.php b/app/models/Reminder.php index b5002501b3..372ba5d058 100644 --- a/app/models/Reminder.php +++ b/app/models/Reminder.php @@ -12,16 +12,6 @@ class Reminder extends Eloquent protected $table = 'reminders'; - /** - * @param $value - * - * @return mixed - */ - public function getDataAttribute($value) - { - return json_decode($value); - } - /** * @return array */ @@ -49,15 +39,7 @@ class Reminder extends Eloquent */ public function scopeDateIs($query, Carbon $start, Carbon $end) { - return $query->where('startdate', $start->format('Y-m-d'))->where('enddate', $end->format('Y-m-d')); - } - - /** - * @param $value - */ - public function setDataAttribute($value) - { - $this->attributes['data'] = json_encode($value); + return $query->where('startdate', $start->format('Y-m-d 00:00:00'))->where('enddate', $end->format('Y-m-d 00:00:00')); } /** diff --git a/app/models/Transaction.php b/app/models/Transaction.php index 554d130ed3..7504215ea6 100644 --- a/app/models/Transaction.php +++ b/app/models/Transaction.php @@ -26,15 +26,6 @@ class Transaction extends Eloquent return $this->belongsTo('Account'); } - - /** - * @return \Illuminate\Database\Eloquent\Relations\BelongsTo - */ - public function piggyBank() - { - return $this->belongsTo('PiggyBank'); - } - /** * @param Builder $query * @param Account $account diff --git a/app/tests/TestCase.php b/app/tests/TestCase.php index 295da78ad4..59b145082c 100644 --- a/app/tests/TestCase.php +++ b/app/tests/TestCase.php @@ -26,14 +26,12 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase public function setUp() { parent::setUp(); - // reset database? $this->prepareForTests(); } static public function setupBeforeClass() { - //League\FactoryMuffin\Facade::loadFactories(__DIR__ . '/factories'); f::loadFactories(__DIR__ . '/factories'); } diff --git a/app/tests/factories/PiggyBank.php b/app/tests/factories/PiggyBank.php new file mode 100644 index 0000000000..18a18fc984 --- /dev/null +++ b/app/tests/factories/PiggyBank.php @@ -0,0 +1,28 @@ + 'factory|Account', + 'name' => 'word', + 'targetamount' => 'numberBetween|10;400', + 'startdate' => 'date|Y-m-d', + 'targetdate' => 'date|Y-m-d', + 'repeats' => 'boolean', + 'rep_length' => function () { + $set = ['day', 'week', 'quarter', 'month', 'year']; + + return $set[rand(0, count($set) - 1)]; + }, + 'rep_every' => 'numberBetween:0,3', + 'rep_times' => 'numberBetween:0,3', + 'reminder' => function () { + $set = ['day', 'week', 'quarter', 'month', 'year']; + + return $set[rand(0, count($set) - 1)]; + }, + 'reminder_skip' => 'numberBetween:0,3', + 'remind_me' => 'boolean', + 'order' => 'numberBetween:0,10', + + ] +); diff --git a/app/tests/factories/PiggyBankRepetition.php b/app/tests/factories/PiggyBankRepetition.php new file mode 100644 index 0000000000..dd1bbbaf76 --- /dev/null +++ b/app/tests/factories/PiggyBankRepetition.php @@ -0,0 +1,11 @@ + 'factory|PiggyBank', + 'startdate' => 'date|Y-m-d', + 'targetdate' => 'date|Y-m-d', + 'currentamount' => 'numberBetween:0,100', + + ] +); diff --git a/app/tests/factories/Reminder.php b/app/tests/factories/Reminder.php new file mode 100644 index 0000000000..62f2a3d513 --- /dev/null +++ b/app/tests/factories/Reminder.php @@ -0,0 +1,13 @@ + 'factory|User', + 'startdate' => 'date|Y-m-d', + 'enddate' => 'date|Y-m-d', + 'active' => 'boolean', + 'notnow' => 'boolean', + 'remindersable_id' => 0, + 'remindersable_type' => '', + ] +); diff --git a/tests/unit/BudgetTest.php b/tests/unit/BudgetTest.php index 9ee9b4aaad..bbe67da42c 100644 --- a/tests/unit/BudgetTest.php +++ b/tests/unit/BudgetTest.php @@ -2,7 +2,7 @@ use League\FactoryMuffin\Facade as f; /** - * Class AccountTypeTest + * Class BudgetTest */ class BudgetTest extends TestCase { diff --git a/tests/unit/PiggyBankRepetitionTest.php b/tests/unit/PiggyBankRepetitionTest.php new file mode 100644 index 0000000000..0d889aad31 --- /dev/null +++ b/tests/unit/PiggyBankRepetitionTest.php @@ -0,0 +1,29 @@ +startdate; + $target = clone $repetition->targetdate; + + $this->assertCount(1, PiggyBankRepetition::starts($start)->get()); + $this->assertCount(1, PiggyBankRepetition::targets($target)->get()); + } +} \ No newline at end of file diff --git a/tests/unit/PiggyBankTest.php b/tests/unit/PiggyBankTest.php new file mode 100644 index 0000000000..4b9a4f617d --- /dev/null +++ b/tests/unit/PiggyBankTest.php @@ -0,0 +1,27 @@ +reminders()->save($reminder); + $this->assertCount(1, $piggyBank->reminders()->get()); + } +} \ No newline at end of file diff --git a/tests/unit/ReminderTest.php b/tests/unit/ReminderTest.php new file mode 100644 index 0000000000..3801b4aebe --- /dev/null +++ b/tests/unit/ReminderTest.php @@ -0,0 +1,38 @@ +startdate; + $end = clone $reminder->enddate; + $this->assertCount(1, Reminder::dateIs($start, $end)->get()); + + } + + public function testUser() + { + $user = f::create('User'); + $reminder = f::create('Reminder'); + $reminder->user_id = $user->id; + $reminder->save(); + + $this->assertEquals($reminder->user->id, $user->id); + } +} \ No newline at end of file