shouldIgnoreMissing(); $app->instance(IAbstractCalendarSyncWorkRequestRepository::class, $repo_mock); $repo_mock = Mockery::mock(ICalendarSyncInfoRepository::class)->shouldIgnoreMissing(); $app->instance(ICalendarSyncInfoRepository::class, $repo_mock); return $app; } public function testSynchronizedRemoveUpdateAdd(){ $preprocessor = App::make('App\Services\Model\MemberActionsCalendarSyncPreProcessor'); $summit_event = Mockery::mock(SummitEvent::class); $summit_event->shouldReceive('getId')->andReturn(1); $member_mock = Mockery::mock(Member::class); $member_mock->shouldReceive("isEventSynchronized")->andReturn(true); $calendar_sync_info = Mockery::mock(CalendarSyncInfo::class); $calendar_sync_info->shouldReceive("getId")->andReturn(1); $request_delete_mock = Mockery::mock(MemberEventScheduleSummitActionSyncWorkRequest::class); $request_delete_mock->shouldReceive('getSummitEvent')->andReturn($summit_event); $request_delete_mock->shouldReceive('getType')->andReturn(AbstractCalendarSyncWorkRequest::TypeRemove); $request_delete_mock->shouldReceive("getOwner")->andReturn($member_mock); $request_delete_mock->shouldReceive("getCalendarSyncInfo")->andReturn($calendar_sync_info); $request_update_mock = Mockery::mock(MemberEventScheduleSummitActionSyncWorkRequest::class); $request_update_mock->shouldReceive('getSummitEvent')->andReturn($summit_event); $request_update_mock->shouldReceive('getType')->andReturn(AbstractCalendarSyncWorkRequest::TypeUpdate); $request_update_mock->shouldReceive("getOwner")->andReturn($member_mock); $request_update_mock->shouldReceive("getCalendarSyncInfo")->andReturn($calendar_sync_info); $request_add_mock = Mockery::mock(MemberEventScheduleSummitActionSyncWorkRequest::class); $request_add_mock->shouldReceive('getSummitEvent')->andReturn($summit_event); $request_add_mock->shouldReceive('getType')->andReturn(AbstractCalendarSyncWorkRequest::TypeAdd); $request_add_mock->shouldReceive("getCalendarSyncInfo")->andReturn($calendar_sync_info); $request_add_mock->shouldReceive("getOwner")->andReturn($member_mock); // preconditions event id 1 is already synchronized with user external calendar // we pass over the time this work load // delete , update, add // bc event is already synchronized, the purged actions should only emmit an update $purged_requests = $preprocessor->preProcessActions([ $request_delete_mock, $request_update_mock, $request_add_mock ]); $this->assertTrue(count($purged_requests) == 1); $this->assertTrue($purged_requests[0]->getType() == AbstractCalendarSyncWorkRequest::TypeUpdate); } public function testSynchronizedRemoveAdd(){ $preprocessor = App::make('App\Services\Model\MemberActionsCalendarSyncPreProcessor'); $summit_event = Mockery::mock(SummitEvent::class); $summit_event->shouldReceive('getId')->andReturn(1); $member_mock = Mockery::mock(Member::class); $member_mock->shouldReceive("isEventSynchronized")->andReturn(true); $calendar_sync_info = Mockery::mock(CalendarSyncInfo::class); $calendar_sync_info->shouldReceive("getId")->andReturn(1); $request_delete_mock = Mockery::mock(MemberEventScheduleSummitActionSyncWorkRequest::class); $request_delete_mock->shouldReceive('getSummitEvent')->andReturn($summit_event); $request_delete_mock->shouldReceive('getType')->andReturn(AbstractCalendarSyncWorkRequest::TypeRemove); $request_delete_mock->shouldReceive("getOwner")->andReturn($member_mock); $request_delete_mock->shouldReceive("getCalendarSyncInfo")->andReturn($calendar_sync_info); $request_add_mock = Mockery::mock(MemberEventScheduleSummitActionSyncWorkRequest::class); $request_add_mock->shouldReceive('getSummitEvent')->andReturn($summit_event); $request_add_mock->shouldReceive('getType')->andReturn(AbstractCalendarSyncWorkRequest::TypeAdd); $request_add_mock->shouldReceive("getCalendarSyncInfo")->andReturn($calendar_sync_info); $request_add_mock->shouldReceive("getOwner")->andReturn($member_mock); // preconditions event id 1 is already synchronized with user external calendar // we pass over the time this work load // delete , add // bc event is already synchronized, the purged actions should only emmit zero elements ( no action) $purged_requests = $preprocessor->preProcessActions([ $request_delete_mock, $request_add_mock ]); $this->assertTrue(count($purged_requests) == 0); } public function testSynchronizedRemoveUpdate(){ $preprocessor = App::make('App\Services\Model\MemberActionsCalendarSyncPreProcessor'); $summit_event = Mockery::mock(SummitEvent::class); $summit_event->shouldReceive('getId')->andReturn(1); $member_mock = Mockery::mock(Member::class); $member_mock->shouldReceive("isEventSynchronized")->andReturn(true); $calendar_sync_info = Mockery::mock(CalendarSyncInfo::class); $calendar_sync_info->shouldReceive("getId")->andReturn(1); $request_delete_mock = Mockery::mock(MemberEventScheduleSummitActionSyncWorkRequest::class); $request_delete_mock->shouldReceive('getSummitEvent')->andReturn($summit_event); $request_delete_mock->shouldReceive('getType')->andReturn(AbstractCalendarSyncWorkRequest::TypeRemove); $request_delete_mock->shouldReceive("getOwner")->andReturn($member_mock); $request_delete_mock->shouldReceive("getCalendarSyncInfo")->andReturn($calendar_sync_info); $request_update_mock = Mockery::mock(MemberEventScheduleSummitActionSyncWorkRequest::class); $request_update_mock->shouldReceive('getSummitEvent')->andReturn($summit_event); $request_update_mock->shouldReceive('getType')->andReturn(AbstractCalendarSyncWorkRequest::TypeUpdate); $request_update_mock->shouldReceive("getOwner")->andReturn($member_mock); $request_update_mock->shouldReceive("getCalendarSyncInfo")->andReturn($calendar_sync_info); // preconditions event id 1 is already synchronized with user external calendar // we pass over the time this work load // delete, update // bc event is already synchronized, the purged actions should only emmit an delete $purged_requests = $preprocessor->preProcessActions([ $request_delete_mock, $request_update_mock, ]); $this->assertTrue(count($purged_requests) == 1); $this->assertTrue($purged_requests[0]->getType() == AbstractCalendarSyncWorkRequest::TypeRemove); } public function testSynchronizedUpdateRemove(){ $preprocessor = App::make('App\Services\Model\MemberActionsCalendarSyncPreProcessor'); $summit_event = Mockery::mock(SummitEvent::class); $summit_event->shouldReceive('getId')->andReturn(1); $member_mock = Mockery::mock(Member::class); $member_mock->shouldReceive("isEventSynchronized")->andReturn(true); $calendar_sync_info = Mockery::mock(CalendarSyncInfo::class); $calendar_sync_info->shouldReceive("getId")->andReturn(1); $request_delete_mock = Mockery::mock(MemberEventScheduleSummitActionSyncWorkRequest::class); $request_delete_mock->shouldReceive('getSummitEvent')->andReturn($summit_event); $request_delete_mock->shouldReceive('getType')->andReturn(AbstractCalendarSyncWorkRequest::TypeRemove); $request_delete_mock->shouldReceive("getOwner")->andReturn($member_mock); $request_delete_mock->shouldReceive("getCalendarSyncInfo")->andReturn($calendar_sync_info); $request_update_mock = Mockery::mock(MemberEventScheduleSummitActionSyncWorkRequest::class); $request_update_mock->shouldReceive('getSummitEvent')->andReturn($summit_event); $request_update_mock->shouldReceive('getType')->andReturn(AbstractCalendarSyncWorkRequest::TypeUpdate); $request_update_mock->shouldReceive("getOwner")->andReturn($member_mock); $request_update_mock->shouldReceive("getCalendarSyncInfo")->andReturn($calendar_sync_info); // preconditions event id 1 is already synchronized with user external calendar // we pass over the time this work load // update, delete // bc event is already synchronized, the purged actions should only emmit an delete $purged_requests = $preprocessor->preProcessActions([ $request_update_mock, $request_delete_mock, ]); $this->assertTrue(count($purged_requests) == 1); $this->assertTrue($purged_requests[0]->getType() == AbstractCalendarSyncWorkRequest::TypeRemove); } public function testUnSynchronizedAddRemoveAdd(){ $preprocessor = App::make('App\Services\Model\MemberActionsCalendarSyncPreProcessor'); $summit_event = Mockery::mock(SummitEvent::class); $summit_event->shouldReceive('getId')->andReturn(1); $member_mock = Mockery::mock(Member::class); $member_mock->shouldReceive("isEventSynchronized")->andReturn(false); $calendar_sync_info = Mockery::mock(CalendarSyncInfo::class); $calendar_sync_info->shouldReceive("getId")->andReturn(1); $request_add_mock = Mockery::mock(MemberEventScheduleSummitActionSyncWorkRequest::class); $request_add_mock->shouldReceive('getSummitEvent')->andReturn($summit_event); $request_add_mock->shouldReceive('getType')->andReturn(AbstractCalendarSyncWorkRequest::TypeAdd); $request_add_mock->shouldReceive("getCalendarSyncInfo")->andReturn($calendar_sync_info); $request_add_mock->shouldReceive("getOwner")->andReturn($member_mock); $request_delete_mock = Mockery::mock(MemberEventScheduleSummitActionSyncWorkRequest::class); $request_delete_mock->shouldReceive('getSummitEvent')->andReturn($summit_event); $request_delete_mock->shouldReceive('getType')->andReturn(AbstractCalendarSyncWorkRequest::TypeRemove); $request_delete_mock->shouldReceive("getOwner")->andReturn($member_mock); $request_delete_mock->shouldReceive("getCalendarSyncInfo")->andReturn($calendar_sync_info); $request_add_mock2 = Mockery::mock(MemberEventScheduleSummitActionSyncWorkRequest::class); $request_add_mock2->shouldReceive('getSummitEvent')->andReturn($summit_event); $request_add_mock2->shouldReceive('getType')->andReturn(AbstractCalendarSyncWorkRequest::TypeAdd); $request_add_mock2->shouldReceive("getCalendarSyncInfo")->andReturn($calendar_sync_info); $request_add_mock2->shouldReceive("getOwner")->andReturn($member_mock); // preconditions event id 1 is not synchronized // we pass over the time this work load // add , delete, add // bc event is already synchronized, the purged actions should only emmit 1 element : add $purged_requests = $preprocessor->preProcessActions([ $request_add_mock, $request_delete_mock, $request_add_mock2 ]); $this->assertTrue(count($purged_requests) == 1); $this->assertTrue($purged_requests[0]->getType() == AbstractCalendarSyncWorkRequest::TypeAdd); } public function testUnSynchronizedAddAdd(){ $preprocessor = App::make('App\Services\Model\MemberActionsCalendarSyncPreProcessor'); $summit_event = Mockery::mock(SummitEvent::class); $summit_event->shouldReceive('getId')->andReturn(1); $member_mock = Mockery::mock(Member::class); $member_mock->shouldReceive("isEventSynchronized")->andReturn(false); $calendar_sync_info = Mockery::mock(CalendarSyncInfo::class); $calendar_sync_info->shouldReceive("getId")->andReturn(1); $request_add_mock = Mockery::mock(MemberEventScheduleSummitActionSyncWorkRequest::class); $request_add_mock->shouldReceive('getSummitEvent')->andReturn($summit_event); $request_add_mock->shouldReceive('getType')->andReturn(AbstractCalendarSyncWorkRequest::TypeAdd); $request_add_mock->shouldReceive("getCalendarSyncInfo")->andReturn($calendar_sync_info); $request_add_mock->shouldReceive("getOwner")->andReturn($member_mock); $request_add_mock2 = Mockery::mock(MemberEventScheduleSummitActionSyncWorkRequest::class); $request_add_mock2->shouldReceive('getSummitEvent')->andReturn($summit_event); $request_add_mock2->shouldReceive('getType')->andReturn(AbstractCalendarSyncWorkRequest::TypeAdd); $request_add_mock2->shouldReceive("getCalendarSyncInfo")->andReturn($calendar_sync_info); $request_add_mock2->shouldReceive("getOwner")->andReturn($member_mock); // preconditions event id 1 is not synchronized // we pass over the time this work load // add , delete, add // bc event is already synchronized, the purged actions should only emmit 1 element : add $purged_requests = $preprocessor->preProcessActions([ $request_add_mock, $request_add_mock2 ]); $this->assertTrue(count($purged_requests) == 1); $this->assertTrue($purged_requests[0]->getType() == AbstractCalendarSyncWorkRequest::TypeAdd); } }