Advertisement
nocturnalmk

MeetingsServiceTest::testCanCalculateAttendanceDetailsForMem

Aug 26th, 2015
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.38 KB | None | 0 0
  1. <?php
  2.  
  3. use Angelov\Eestec\Platform\Reports\MeetingsAttendanceDetailsForMemberReport;
  4.  
  5. class MeetingsServiceTest extends TestCase
  6. {
  7.     public function testCanCalculateAttendanceDetailsForMember()
  8.     {
  9.         $meetings = Mockery::mock(Angelov\Eestec\Platform\Repositories\MeetingsRepositoryInterface::class);
  10.  
  11.         $member = Mockery::mock(Angelov\Eestec\Platform\Entities\Member::class);
  12.         $member->shouldReceive('getJoiningDate')->withNoArgs()
  13.                ->andReturn(new \Carbon\Carbon('1 month ago'));
  14.  
  15.         $meetings->shouldReceive('countAttendanceForMember')->andReturn(5);
  16.         $meetings->shouldReceive('countMeetingsInPeriod')->andReturn(10);
  17.  
  18.         $members = Mockery::mock(Angelov\Eestec\Platform\Repositories\MembersRepositoryInterface::class);
  19.         $membershipService = Mockery::mock(Angelov\Eestec\Platform\Services\MembershipService::class);
  20.  
  21.         $service = new \Angelov\Eestec\Platform\Services\MeetingsService($meetings, $members, $membershipService);
  22.  
  23.         $report = $service->calculateAttendanceDetailsForMember($member);
  24.  
  25.         $this->assertInstanceOf(MeetingsAttendanceDetailsForMemberReport::class, $report);
  26.  
  27.         $this->assertEquals(5, $report->getAttended());
  28.         $this->assertEquals(5, $report->getMissed());
  29.         $this->assertEquals(10, $report->getTotal());
  30.         $this->assertEquals(50, $report->getRate());
  31.     }
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement