public UniMicroTestSetup UniMicroServiceReturnsWorkItem(IAbsenceMessageData message) { var absence = MessageToAbsenceMapper.CreateAbsenceFromMessage(message); foreach (var absenceEntry in absence.AbsenceEntries) { if (absenceEntry.LocalAbsenceCode == (int)AbsenceSubType.ParentalLeave) { var employementId = _entityMapService.GetEmploymentId(absence.EmployeeId, absence.UnitId).Result.Value; var leaveTypeId = _entityMapService.GetEmploymentLeaveId(absenceEntry.LocalAbsenceCode, absence.UnitId).Result.Value; A.CallTo(() => _uniMicroClient.PostEmploymentLeave(A <EmploymentLeave> .That.Matches(w => w.FromDate == absenceEntry.StartTime && w.ToDate == absenceEntry.EndTime && w.EmploymentID == employementId && w.LeaveType == (LeaveType)leaveTypeId ))) .ReturnsLazily(() => Task.FromResult(_externalEmploymentLeaveIds++)); } else { A.CallTo(() => _uniMicroClient.PostWorkItem(A <WorkItem> .That.Matches(w => w.StartTime == absenceEntry.StartTime && w.EndTime == absenceEntry.EndTime && w.WorkRelationId == _entityMapService.GetWorkRelationId(absence.EmployeeId, absence.UnitId).Result.Value && w.WorkTypeId == _entityMapService.GetWorkTypeId(absenceEntry.LocalAbsenceCode, absence.UnitId).Result.Value ))).ReturnsLazily(() => Task.FromResult(_externalWorkItemIds++)); } } return(this); }
public static Absence CreateAbsenceFromMessage(IAbsenceMessageData message) { var absenceEntries = message.AbsenceEntries?.Select(entry => new AbsenceEntry { ExternalAbsenceCode = null, ExternalEntityId = null, ExternalId = null, IsFullDay = entry.IsFullDay, StartTime = entry.FromDate, EndTime = entry.ToDate, LocalAbsenceCode = (int)entry.AbsenceSubType }).ToList(); absenceEntries = absenceEntries ?? new List <AbsenceEntry>(); return(new Absence { LunchInMinutes = LunchInMinutes, LocalId = message.AbsenceId, Description = "Imported from Sticos Personal", EmployeeId = message.EmployeeId, UnitId = message.UnitId, AbsenceEntries = absenceEntries }); }