コード例 #1
0
        public async Task CanCompleteWorkItemAny()
        {
            var workItemDto = new WorkItem();

            workItemDto.Id                  = 2;
            workItemDto.AdminGroupId        = null;
            workItemDto.CompletionMode      = Api.Models.CompletionMode.Any;
            workItemDto.DescriptionMarkup   = "<h1>header</h1>";
            workItemDto.Location            = "location";
            workItemDto.Name                = "name";
            workItemDto.PatrolId            = 1;
            workItemDto.RecurringWorkItemId = null;
            workItemDto.ScheduledAt         = new DateTime(2001, 1, 1);
            int userId = 50;

            _workItemRepository.Setup(x => x.GetWorkItem(workItemDto.Id))
            .Returns(Task.FromResult(workItemDto))
            .Verifiable();

            _workItemRepository.Setup(x => x.GetWorkItemAssignments(workItemDto.Id))
            .Returns(Task.FromResult((new List <WorkItemAssignment>()).AsEnumerable())).Verifiable();

            var now = new DateTimeOffset(2001, 1, 1, 0, 0, 0, new TimeSpan());

            _systemClockMock.Setup(x => x.UtcNow).Returns(now);

            _workItemRepository.Setup(x => x.UpdateWorkItem(It.Is <WorkItem>(y => y.CompletedAt == now.UtcDateTime)))
            .Verifiable();

            _workItemRepository.Setup(x => x.InsertWorkItemAssignment(It.Is <WorkItemAssignment>(y => y.CompletedAt == now.UtcDateTime)))
            .Verifiable();

            var notes = "notes";

            await _workItemService.CompleteWorkItem(workItemDto.Id, userId, notes);

            _workItemRepository.Verify();
        }