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