public async Task Should_confirm_hearing() { var hearingId = Guid.NewGuid(); var conferenceDetailsResponse = CreateConferenceDetailsResponse(); var request = new UpdateBookingRequestBuilder().Build(); BookingsApiClient .Setup(x => x.UpdateBookingStatusAsync(It.IsAny <Guid>(), It.IsAny <UpdateBookingStatusRequest>())) .Returns(Task.CompletedTask); VideoApiService .Setup(x => x.GetConferenceByHearingIdPolling(It.IsAny <Guid>())) .ReturnsAsync(conferenceDetailsResponse); var response = await Controller.ConfirmHearingById(hearingId, request); response.Should().NotBeNull(); var result = (ObjectResult)response; result.StatusCode.Should().Be((int)HttpStatusCode.Created); var conferenceDetails = (ConferenceDetailsResponse)result.Value; conferenceDetails.Should().BeEquivalentTo(conferenceDetailsResponse); }
public async Task Should_return_not_found_for_non_existent_hearing_id() { var request = new UpdateBookingRequestBuilder().Build(); var uri = ApiUriFactory.HearingEndpoints.ConfirmHearing(Guid.NewGuid()); await SendPatchRequest(uri, RequestHelper.Serialise(request)); VerifyResponse(HttpStatusCode.NotFound, false); }
public void ConfirmHearing() { var hearing = CreateHearing(); var body = new UpdateBookingRequestBuilder().Build(); var uri = ApiUriFactory.HearingEndpoints.ConfirmHearing(hearing.Id); var request = RequestHandler.Patch(uri, body); var response = SendRequest(request); var conference = RequestHelper.Deserialise <ConferenceDetailsResponse>(response.Content); response.Should().NotBeNull(); Context.TestData.Conference = conference; Verify.ConferenceDetailsResponse(conference, hearing); }
public async Task Should_confirm_hearing() { var hearingRequest = CreateHearingRequest(); var hearingResponse = await CreateHearing(hearingRequest); var request = new UpdateBookingRequestBuilder().Build(); var uri = ApiUriFactory.HearingEndpoints.ConfirmHearing(hearingResponse.Id); await SendPatchRequest(uri, RequestHelper.Serialise(request)); VerifyResponse(HttpStatusCode.Created, true); var response = RequestHelper.Deserialise <ConferenceDetailsResponse>(Json); response.Should().NotBeNull(); Verify.ConferenceDetailsResponse(response, hearingResponse); }
public async Task Should_throw_not_found_for_non_existent_hearing_id() { var hearingId = Guid.NewGuid(); var request = new UpdateBookingRequestBuilder().Build(); BookingsApiClient .Setup(x => x.GetHearingDetailsByIdAsync(It.IsAny <Guid>())) .Throws(CreateBookingsApiException("Hearing not found", HttpStatusCode.NotFound)); var response = await Controller.ConfirmHearingById(hearingId, request); response.Should().NotBeNull(); var result = (ObjectResult)response; result.StatusCode.Should().Be((int)HttpStatusCode.NotFound); }
public async Task Should_throw_not_found_if_conference_not_created() { var hearingId = Guid.NewGuid(); var request = new UpdateBookingRequestBuilder().Build(); BookingsApiService .Setup(x => x.UpdateBookingStatusPolling(It.IsAny <Guid>(), It.IsAny <UpdateBookingStatusRequest>())) .Returns(Task.CompletedTask); VideoApiService .Setup(x => x.GetConferenceByHearingIdPolling(It.IsAny <Guid>())) .ThrowsAsync(CreateVideoApiException("Conference not found", HttpStatusCode.NotFound)); var response = await Controller.ConfirmHearingById(hearingId, request); response.Should().NotBeNull(); var result = (ObjectResult)response; result.StatusCode.Should().Be((int)HttpStatusCode.NotFound); }
public async Task Should_throw_error_if_update_booking_status_failed() { var hearingId = Guid.NewGuid(); var conferenceDetailsResponse = CreateConferenceDetailsResponse(); var request = new UpdateBookingRequestBuilder().Build(); VideoApiService .Setup(x => x.GetConferenceByHearingIdPolling(It.IsAny <Guid>())) .ReturnsAsync(conferenceDetailsResponse); BookingsApiService .Setup(x => x.UpdateBookingStatusPolling(It.IsAny <Guid>(), It.IsAny <UpdateBookingStatusRequest>())) .ThrowsAsync(CreateBookingsApiException("Hearing not found", HttpStatusCode.NotFound)); var response = await Controller.ConfirmHearingById(hearingId, request); response.Should().NotBeNull(); var result = (ObjectResult)response; result.StatusCode.Should().Be((int)HttpStatusCode.NotFound); }
public async Task Should_create_hearing_and_allocate_users() { var userTypes = new List <UserType>() { UserType.Judge, UserType.VideoHearingsOfficer, UserType.CaseAdmin, UserType.Individual, UserType.Representative, UserType.Individual, UserType.Representative, UserType.Interpreter, UserType.Observer, UserType.PanelMember, UserType.Witness }; var allocateRequest = new AllocateUsersRequestBuilder() .WithUserTypes(userTypes) .ForApplication(Application.TestApi) .Build(); var allocateUsersUri = ApiUriFactory.AllocationEndpoints.AllocateUsers; await SendPatchRequest(allocateUsersUri, RequestHelper.Serialise(allocateRequest)); VerifyResponse(HttpStatusCode.OK, true); var usersDetails = RequestHelper.Deserialise <List <UserDetailsResponse> >(Json); usersDetails.Should().NotBeNull(); Verify.UsersDetailsResponse(usersDetails, userTypes); var users = UserDetailsResponseToUserMapper.Map(usersDetails); var hearingRequest = new HearingBuilder(users) .TypeOfTest(TestType.Automated) .Build(); var createHearingUri = ApiUriFactory.HearingEndpoints.CreateHearing; await SendPostRequest(createHearingUri, RequestHelper.Serialise(hearingRequest)); VerifyResponse(HttpStatusCode.Created, true); var hearing = RequestHelper.Deserialise <HearingDetailsResponse>(Json); hearing.Should().NotBeNull(); HearingsToDelete.Add(hearing); var caseAdmin = hearingRequest.Users.First(x => x.UserType == UserType.CaseAdmin); var request = new UpdateBookingRequestBuilder().Build(); var uri = ApiUriFactory.HearingEndpoints.ConfirmHearing(hearing.Id); await SendPatchRequest(uri, RequestHelper.Serialise(request)); VerifyResponse(HttpStatusCode.Created, true); var conference = RequestHelper.Deserialise <ConferenceDetailsResponse>(Json); conference.Should().NotBeNull(); Verify.ConferenceDetailsResponse(conference, hearing); var unallocateUsersRequest = new UnallocateUsersRequest() { Usernames = users.Select(user => user.Username).ToList() }; var unallocateUri = ApiUriFactory.AllocationEndpoints.UnallocateUsers; await SendPatchRequest(unallocateUri, RequestHelper.Serialise(unallocateUsersRequest)); VerifyResponse(HttpStatusCode.OK, true); }