Exemplo n.º 1
0
        public async Task WhenVolunteerAndRequestedByIsTheSame_ReturnsTrue()
        {
            _request = new PutUpdateShiftStatusToAcceptedRequest
            {
                CreatedByUserID = 1,
                RequestID       = 1,
                SupportActivity = new SingleSupportActivityRequest()
                {
                    SupportActivity = SupportActivities.VolunteerSupport
                },
                VolunteerUserID = 1
            };
            _jobId    = 0;
            _newJobId = 1;
            _getUserGroupsResponse = new GetUserGroupsResponse()
            {
                Groups = new List <int>()
                {
                    -1
                }
            };
            _groups = new List <int>()
            {
                -1
            };

            var response = await _classUnderTest.Handle(_request, CancellationToken.None);

            _repository.Verify(x => x.VolunteerAlreadyAcceptedShift(It.IsAny <int>(), It.IsAny <SupportActivities>(), It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Once);
            _jobService.Verify(x => x.HasPermissionToChangeRequestAsync(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Never);
            _repository.Verify(x => x.UpdateRequestStatusToAccepted(It.IsAny <int>(), It.IsAny <SupportActivities>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Once);
            _repository.Verify(x => x.GetGroupsForRequestAsync(It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Once);
            _groupService.Verify(x => x.GetUserGroups(It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Once);
            Assert.AreEqual(UpdateJobStatusOutcome.Success, response.Outcome);
        }
Exemplo n.º 2
0
        public async Task WhenVolunteerAlreadyAssignedForRequestAndSupportActivity_ReturnsNoLongerAvailable()
        {
            _hasPermission = true;
            int requestID = 1;
            SupportActivities activity = SupportActivities.VolunteerSupport;
            int volunteerUserID        = 1;

            _request = new PutUpdateShiftStatusToAcceptedRequest
            {
                CreatedByUserID = 2,
                RequestID       = requestID,
                SupportActivity = new SingleSupportActivityRequest()
                {
                    SupportActivity = activity
                },
                VolunteerUserID = volunteerUserID
            };
            _jobId = 0;
            _getUserGroupsResponse = new GetUserGroupsResponse()
            {
                Groups = new List <int>()
                {
                    -1
                }
            };
            _groups = new List <int>()
            {
                -1
            };

            _repository.Setup(x => x.UpdateRequestStatusToAccepted(It.IsAny <int>(), It.IsAny <SupportActivities>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <CancellationToken>()))
            .Throws(new UnableToUpdateShiftException($"Unable to UpdateShiftStatus for RequestID:{requestID} SupportActivity:{activity} Volunteer:{volunteerUserID}"));

            var response = await _classUnderTest.Handle(_request, CancellationToken.None);

            _repository.Verify(x => x.VolunteerAlreadyAcceptedShift(It.IsAny <int>(), It.IsAny <SupportActivities>(), It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Once);
            _jobService.Verify(x => x.HasPermissionToChangeRequestAsync(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Once);
            _repository.Verify(x => x.UpdateRequestStatusToAccepted(It.IsAny <int>(), It.IsAny <SupportActivities>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Once);
            _repository.Verify(x => x.GetGroupsForRequestAsync(It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Once);
            _groupService.Verify(x => x.GetUserGroups(It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Once);
            Assert.AreEqual(UpdateJobStatusOutcome.NoLongerAvailable, response.Outcome);
        }
Exemplo n.º 3
0
        public async Task <UpdateJobStatusOutcome?> PutUpdateShiftStatusToAccepted(int requestId, SupportActivities supportActivity, int createdByUserId, int volunteerUserId)
        {
            var request = new PutUpdateShiftStatusToAcceptedRequest()
            {
                RequestID       = requestId,
                SupportActivity = new SingleSupportActivityRequest()
                {
                    SupportActivity = supportActivity
                },
                CreatedByUserID = createdByUserId,
                VolunteerUserID = volunteerUserId
            };

            var response = await PutAsync <BaseRequestHelpResponse <PutUpdateShiftStatusToAcceptedResponse> >($"/api/PutUpdateShiftStatusToAccepted", request);

            if (response.HasContent && response.IsSuccessful)
            {
                return(response.Content.Outcome);
            }
            return(null);
        }
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "put", Route = null)]
            [RequestBodyType(typeof(PutUpdateShiftStatusToAcceptedRequest), "put update shift status to accepted request")] PutUpdateShiftStatusToAcceptedRequest req,
            CancellationToken cancellationToken)
        {
            try
            {
                _logger.LogInformation("PutUpdateShiftStatusToAccepted started");
                PutUpdateShiftStatusToAcceptedResponse response = await _mediator.Send(req, cancellationToken);

                return(new OkObjectResult(ResponseWrapper <PutUpdateShiftStatusToAcceptedResponse, RequestServiceErrorCode> .CreateSuccessfulResponse(response)));
            }
            catch (Exception exc)
            {
                _logger.LogErrorAndNotifyNewRelic("Exception occured in PutUpdateShiftStatusToAccepted", exc);
                return(new ObjectResult(ResponseWrapper <PutUpdateShiftStatusToAcceptedResponse, RequestServiceErrorCode> .CreateUnsuccessfulResponse(RequestServiceErrorCode.InternalServerError, "Internal Error"))
                {
                    StatusCode = StatusCodes.Status500InternalServerError
                });
            }
        }