private DateTime CalculateNextDueDate(DateTime dueDate, ItemRepeat repeat) => repeat switch {
public async Task Repeating_item_should_update_next_due_date(string currentDueDate, ItemRepeat repeat, string expectedDueDate) { _userItem.CompletedDateTime = null; _userItem.NextDueDate = DateTime.ParseExact(currentDueDate, "yyyy-MM-dd", null); _userItem.Repeat = repeat; var result = await _handler.Handle(new MarkItemAsDoneRequest(_user, _userItem.UserItemId), CancellationToken.None); result.Should().BeTrue(); _userItem.CompletedDateTime.Should().BeNull(); _userItem.PostponedUntilDate.Should().BeNull(); _userItem.NextDueDate.Should().Be(DateTime.ParseExact(expectedDueDate, "yyyy-MM-dd", null)); _userItemRepository.Verify(x => x.SaveAsync(_userItem, It.IsAny <UserList>(), It.IsAny <IUserActionsService>()), Times.Once); }