Ejemplo n.º 1
0
        public async Task Should_create_hearing_with_audio_recording()
        {
            var firstUser  = CreateUser(UserType.Judge);
            var secondUser = CreateUser(UserType.Individual);
            var thirdUser  = CreateUser(UserType.Representative);
            var fourthUser = CreateUser(UserType.CaseAdmin);

            var users = new List <UserDto> {
                firstUser, secondUser, thirdUser, fourthUser
            };

            var createHearingRequest = new HearingBuilder(users)
                                       .AudioRecordingRequired()
                                       .Build();

            var bookHearingRequest     = new BookHearingRequestBuilder(createHearingRequest).Build();
            var hearingDetailsResponse = new HearingDetailsResponseBuilder(bookHearingRequest).Build();

            BookingsApiClient
            .Setup(x => x.BookNewHearingAsync(It.IsAny <BookNewHearingRequest>()))
            .ReturnsAsync(hearingDetailsResponse);

            var response = await Controller.CreateHearing(createHearingRequest);

            var result = (ObjectResult)response;

            result.StatusCode.Should().Be((int)HttpStatusCode.Created);

            var hearingDetails = (HearingDetailsResponse)result.Value;

            hearingDetails.Should().NotBeNull();
            hearingDetails.Should().BeEquivalentTo(hearingDetailsResponse);
        }
Ejemplo n.º 2
0
        public async Task Should_create_hearing_with_all_user_types()
        {
            var judge       = CreateUser(UserType.Judge);
            var observer    = CreateUser(UserType.Observer);
            var panelMember = CreateUser(UserType.PanelMember);
            var caseAdmin   = CreateUser(UserType.CaseAdmin);
            var vho         = CreateUser(UserType.VideoHearingsOfficer);
            var individual  = CreateUser(UserType.Individual);

            var users = new List <UserDto> {
                judge, observer, panelMember, caseAdmin, vho, individual
            };

            var createHearingRequest   = new HearingBuilder(users).Build();
            var bookHearingRequest     = new BookHearingRequestBuilder(createHearingRequest).Build();
            var hearingDetailsResponse = new HearingDetailsResponseBuilder(bookHearingRequest).Build();

            BookingsApiClient
            .Setup(x => x.BookNewHearingAsync(It.IsAny <BookNewHearingRequest>()))
            .ReturnsAsync(hearingDetailsResponse);

            var response = await Controller.CreateHearing(createHearingRequest);

            var result = (ObjectResult)response;

            result.StatusCode.Should().Be((int)HttpStatusCode.Created);

            var hearingDetails = (HearingDetailsResponse)result.Value;

            hearingDetails.Should().NotBeNull();
        }
Ejemplo n.º 3
0
        public async Task Should_create_hearings_for_other_applications()
        {
            var judge      = CreateUser(UserType.Judge);
            var individual = CreateUser(UserType.Individual);

            var users = new List <UserDto> {
                judge, individual
            };

            var createHearingRequest = new HearingBuilder(users)
                                       .TypeOfTest(TestType.Automated)
                                       .ForApplication(Application.QueueSubscriber)
                                       .Build();

            var bookHearingRequest     = new BookHearingRequestBuilder(createHearingRequest).Build();
            var hearingDetailsResponse = new HearingDetailsResponseBuilder(bookHearingRequest).Build();

            BookingsApiClient
            .Setup(x => x.BookNewHearingAsync(It.IsAny <BookNewHearingRequest>()))
            .ReturnsAsync(hearingDetailsResponse);

            var response = await Controller.CreateHearing(createHearingRequest);

            var result = (ObjectResult)response;

            result.StatusCode.Should().Be((int)HttpStatusCode.Created);

            var hearingDetails = (HearingDetailsResponse)result.Value;

            hearingDetails.Should().NotBeNull();
            hearingDetails.Should().BeEquivalentTo(hearingDetailsResponse);
        }
Ejemplo n.º 4
0
        public async Task Should_create_hearing_without_specifying_the_case_type()
        {
            var judge      = CreateUser(UserType.Judge);
            var individual = CreateUser(UserType.Individual);

            var users = new List <UserDto> {
                judge, individual
            };

            var createHearingRequest   = new HearingBuilder(users).WithoutACaseType().Build();
            var bookHearingRequest     = new BookHearingRequestBuilder(createHearingRequest).Build();
            var hearingDetailsResponse = new HearingDetailsResponseBuilder(bookHearingRequest).Build();

            BookingsApiClient
            .Setup(x => x.BookNewHearingAsync(It.IsAny <BookNewHearingRequest>()))
            .ReturnsAsync(hearingDetailsResponse);

            var response = await Controller.CreateHearing(createHearingRequest);

            var result = (ObjectResult)response;

            result.StatusCode.Should().Be((int)HttpStatusCode.Created);

            var hearingDetails = (HearingDetailsResponse)result.Value;

            hearingDetails.Should().NotBeNull();
            hearingDetails.Should().BeEquivalentTo(hearingDetailsResponse);
        }
Ejemplo n.º 5
0
        protected HearingDetailsResponse CreateHearing()
        {
            var users    = CreateUsers();
            var body     = new HearingBuilder(users).Build();
            var uri      = ApiUriFactory.HearingEndpoints.CreateHearing;
            var request  = RequestHandler.Post(uri, body);
            var response = SendRequest(request);

            response.StatusCode.Should().Be(HttpStatusCode.Created);
            response.IsSuccessful.Should().BeTrue();
            Context.TestData.Hearing = RequestHelper.Deserialise <HearingDetailsResponse>(response.Content);
            return(Context.TestData.Hearing);
        }
Ejemplo n.º 6
0
        public async Task Should_return_bad_request_with_invalid_request()
        {
            var firstUser  = CreateUser(UserType.Judge);
            var secondUser = CreateUser(UserType.Individual);
            var thirdUser  = CreateUser(UserType.Representative);
            var fourthUser = CreateUser(UserType.CaseAdmin);

            var users = new List <UserDto> {
                firstUser, secondUser, thirdUser, fourthUser
            };

            var createHearingRequest = new HearingBuilder(users).Build();

            BookingsApiClient
            .Setup(x => x.BookNewHearingAsync(It.IsAny <BookNewHearingRequest>()))
            .ThrowsAsync(CreateBookingsApiException("Hearing not created", HttpStatusCode.BadRequest));

            var response = await Controller.CreateHearing(createHearingRequest);

            var result = (ObjectResult)response;

            result.StatusCode.Should().Be((int)HttpStatusCode.BadRequest);
        }
        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);
        }