Skip to content
This repository was archived by the owner on Jan 17, 2020. It is now read-only.

Commit 6c6becd

Browse files
authored
Porting getMinutesOn() and getHoursOn() to the model itself (#10)
* Ported getHoursOn() and getMinutesOn() directly into the schedule model. * Updated the tests. * Apply fixes from StyleCI (#11)
1 parent 1262da1 commit 6c6becd

File tree

2 files changed

+68
-0
lines changed

2 files changed

+68
-0
lines changed

src/Models/ScheduleModel.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,14 @@ public function model()
1717
{
1818
return $this->morphTo();
1919
}
20+
21+
public function getHoursOn($dateOrDay): int
22+
{
23+
return $this->model()->first()->getHoursOn($dateOrDay);
24+
}
25+
26+
public function getMinutesOn($dateOrDay): int
27+
{
28+
return $this->model()->first()->getMinutesOn($dateOrDay);
29+
}
2030
}

tests/ScheduleTest.php

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,11 @@ public function testIsAvailableOnExclusion()
372372
$this->assertEquals($this->user->getHoursOn('2018-05-31'), 12);
373373
$this->assertEquals($this->user->getHoursOn('2018-06-01'), 3);
374374
$this->assertEquals($this->user->getHoursOn('2018-06-02'), 0);
375+
376+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('2018-05-28'), 0);
377+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('2018-05-31'), 12);
378+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('2018-06-01'), 3);
379+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('2018-06-02'), 0);
375380
}
376381

377382
public function testIsUnavailableOnExclusion()
@@ -400,6 +405,11 @@ public function testIsUnavailableOnExclusion()
400405
$this->assertEquals($this->user->getHoursOn('2018-05-31'), 12);
401406
$this->assertEquals($this->user->getHoursOn('2018-06-01'), 3);
402407
$this->assertEquals($this->user->getHoursOn('2018-06-02'), 0);
408+
409+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('2018-05-28'), 0);
410+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('2018-05-31'), 12);
411+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('2018-06-01'), 3);
412+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('2018-06-02'), 0);
403413
}
404414

405415
public function testIsAvailableOnAtExclusion()
@@ -456,6 +466,14 @@ public function testGetHoursOn()
456466
$this->assertEquals($this->user->getHoursOn('saturday'), 0);
457467
$this->assertEquals($this->user->getHoursOn('sunday'), 0);
458468

469+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('monday'), 4);
470+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('tuesday'), 8);
471+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('wednesday'), 1);
472+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('thursday'), 0);
473+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('friday'), 0);
474+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('saturday'), 0);
475+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('sunday'), 0);
476+
459477
$this->assertEquals($this->user->getHoursOn('2018-05-28'), 4);
460478
$this->assertEquals($this->user->getHoursOn('2018-05-29'), 8);
461479
$this->assertEquals($this->user->getHoursOn('2018-05-30'), 1);
@@ -464,13 +482,29 @@ public function testGetHoursOn()
464482
$this->assertEquals($this->user->getHoursOn('2018-06-02'), 0);
465483
$this->assertEquals($this->user->getHoursOn('2018-06-03'), 0);
466484

485+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('2018-05-28'), 4);
486+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('2018-05-29'), 8);
487+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('2018-05-30'), 1);
488+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('2018-05-31'), 0);
489+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('2018-06-01'), 0);
490+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('2018-06-02'), 0);
491+
$this->assertEquals($this->user->schedule()->first()->getHoursOn('2018-06-03'), 0);
492+
467493
$this->assertEquals($this->user->getHoursOn(Carbon::create(2018, 5, 28, 0, 0, 0)), 4);
468494
$this->assertEquals($this->user->getHoursOn(Carbon::create(2018, 5, 29, 0, 0, 0)), 8);
469495
$this->assertEquals($this->user->getHoursOn(Carbon::create(2018, 5, 30, 0, 0, 0)), 1);
470496
$this->assertEquals($this->user->getHoursOn(Carbon::create(2018, 5, 31, 0, 0, 0)), 0);
471497
$this->assertEquals($this->user->getHoursOn(Carbon::create(2018, 6, 1, 0, 0, 0)), 0);
472498
$this->assertEquals($this->user->getHoursOn(Carbon::create(2018, 6, 2, 0, 0, 0)), 0);
473499
$this->assertEquals($this->user->getHoursOn(Carbon::create(2018, 6, 3, 0, 0, 0)), 0);
500+
501+
$this->assertEquals($this->user->schedule()->first()->getHoursOn(Carbon::create(2018, 5, 28, 0, 0, 0)), 4);
502+
$this->assertEquals($this->user->schedule()->first()->getHoursOn(Carbon::create(2018, 5, 29, 0, 0, 0)), 8);
503+
$this->assertEquals($this->user->schedule()->first()->getHoursOn(Carbon::create(2018, 5, 30, 0, 0, 0)), 1);
504+
$this->assertEquals($this->user->schedule()->first()->getHoursOn(Carbon::create(2018, 5, 31, 0, 0, 0)), 0);
505+
$this->assertEquals($this->user->schedule()->first()->getHoursOn(Carbon::create(2018, 6, 1, 0, 0, 0)), 0);
506+
$this->assertEquals($this->user->schedule()->first()->getHoursOn(Carbon::create(2018, 6, 2, 0, 0, 0)), 0);
507+
$this->assertEquals($this->user->schedule()->first()->getHoursOn(Carbon::create(2018, 6, 3, 0, 0, 0)), 0);
474508
}
475509

476510
public function testGetMinutesOn()
@@ -495,6 +529,14 @@ public function testGetMinutesOn()
495529
$this->assertEquals($this->user->getMinutesOn('saturday'), 0);
496530
$this->assertEquals($this->user->getMinutesOn('sunday'), 0);
497531

532+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn('monday'), 4 * 60);
533+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn('tuesday'), 8 * 60);
534+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn('wednesday'), 1 * 60);
535+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn('thursday'), 0);
536+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn('friday'), 0);
537+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn('saturday'), 0);
538+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn('sunday'), 0);
539+
498540
$this->assertEquals($this->user->getMinutesOn('2018-05-28'), 0);
499541
$this->assertEquals($this->user->getMinutesOn('2018-05-29'), 8 * 60);
500542
$this->assertEquals($this->user->getMinutesOn('2018-05-30'), 1 * 60);
@@ -503,13 +545,29 @@ public function testGetMinutesOn()
503545
$this->assertEquals($this->user->getMinutesOn('2018-06-02'), 0);
504546
$this->assertEquals($this->user->getMinutesOn('2018-06-03'), 0);
505547

548+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn('2018-05-28'), 0);
549+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn('2018-05-29'), 8 * 60);
550+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn('2018-05-30'), 1 * 60);
551+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn('2018-05-31'), 12 * 60);
552+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn('2018-06-01'), 3 * 60);
553+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn('2018-06-02'), 0);
554+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn('2018-06-03'), 0);
555+
506556
$this->assertEquals($this->user->getMinutesOn(Carbon::create(2018, 5, 28, 0, 0, 0)), 0);
507557
$this->assertEquals($this->user->getMinutesOn(Carbon::create(2018, 5, 29, 0, 0, 0)), 8 * 60);
508558
$this->assertEquals($this->user->getMinutesOn(Carbon::create(2018, 5, 30, 0, 0, 0)), 1 * 60);
509559
$this->assertEquals($this->user->getMinutesOn(Carbon::create(2018, 5, 31, 0, 0, 0)), 12 * 60);
510560
$this->assertEquals($this->user->getMinutesOn(Carbon::create(2018, 6, 1, 0, 0, 0)), 3 * 60);
511561
$this->assertEquals($this->user->getMinutesOn(Carbon::create(2018, 6, 2, 0, 0, 0)), 0);
512562
$this->assertEquals($this->user->getMinutesOn(Carbon::create(2018, 6, 3, 0, 0, 0)), 0);
563+
564+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn(Carbon::create(2018, 5, 28, 0, 0, 0)), 0);
565+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn(Carbon::create(2018, 5, 29, 0, 0, 0)), 8 * 60);
566+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn(Carbon::create(2018, 5, 30, 0, 0, 0)), 1 * 60);
567+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn(Carbon::create(2018, 5, 31, 0, 0, 0)), 12 * 60);
568+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn(Carbon::create(2018, 6, 1, 0, 0, 0)), 3 * 60);
569+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn(Carbon::create(2018, 6, 2, 0, 0, 0)), 0);
570+
$this->assertEquals($this->user->schedule()->first()->getMinutesOn(Carbon::create(2018, 6, 3, 0, 0, 0)), 0);
513571
}
514572

515573
public function testDeleteExclusions()

0 commit comments

Comments
 (0)