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);
        }