public async Task CanCreateWorkItemsFromRecurringWorkItem() { var dto = new RecurringWorkItem(); int userId = 1; dto.CompletionMode = CompletionMode.AnyAssigned; dto.DescriptionMarkup = "Description"; dto.Location = "Location"; dto.Name = "Name"; dto.PatrolId = 1; dto.RecurStart = new DateTime(2001, 1, 1, 9, 0, 0); dto.RecurEnd = new DateTime(2001, 1, 4, 9, 0, 0); dto.RecurInterval = RecurInterval.Day; dto.RecurIntervalCount = 1; var now = new DateTimeOffset(2001, 1, 1, 0, 0, 0, new TimeSpan()); _systemClockMock.Setup(x => x.UtcNow).Returns(now); _workItemRepository.Setup(x => x.GetWorkItems(It.IsAny <int>(), now.UtcDateTime)) .Returns(Task.FromResult(new List <WorkItem>() { }.AsEnumerable())) .Verifiable(); _workItemRepository.Setup(x => x.InsertWorkItem(It.Is <WorkItem>(y => y.ScheduledAt.Day == 1))) .Verifiable(); _workItemRepository.Setup(x => x.InsertWorkItem(It.Is <WorkItem>(y => y.ScheduledAt.Day == 2))) .Verifiable(); _workItemRepository.Setup(x => x.InsertWorkItem(It.Is <WorkItem>(y => y.ScheduledAt.Day == 3))) .Verifiable(); _workItemRepository.Setup(x => x.InsertWorkItem(It.Is <WorkItem>(y => y.ScheduledAt.Day == 4))) .Verifiable(); await _workItemService.PopulateTimedWorkItemOccurences(dto, userId, new List <int>() { userId }, now.UtcDateTime, false); _workItemRepository.Verify(); }