public void TestInitialize()
        {
            HearingId          = Guid.NewGuid();
            EndpointId         = Guid.NewGuid();
            AddEndpointRequest = new AddEndpointRequest {
                DisplayName = "DisplayNameAdded"
            };

            QueryHandler       = new Mock <IQueryHandler>();
            CommandHandlerMock = new Mock <ICommandHandler>();
            RandomGenerator    = new Mock <IRandomGenerator>();
            EventPublisher     = new Mock <IEventPublisher>();
            KinlyConfiguration = new KinlyConfiguration {
                SipAddressStem = "@hmcts.net"
            };

            Controller = new EndPointsController(
                CommandHandlerMock.Object,
                RandomGenerator.Object,
                new OptionsWrapper <KinlyConfiguration>(KinlyConfiguration),
                EventPublisher.Object, QueryHandler.Object);

            QueryHandler.Setup(q => q.Handle <GetHearingByIdQuery, VideoHearing>(It.IsAny <GetHearingByIdQuery>()))
            .ReturnsAsync(GetVideoHearing(true));
        }
        private void SetupAddEndpointRequest(Guid conferenceId, AddEndpointRequest request)
        {
            var jsonBody = RequestHelper.Serialise(request);

            _context.HttpContent = new StringContent(jsonBody, Encoding.UTF8, "application/json");
            _context.Uri         = AddEndpointsToConference(conferenceId);
            _context.HttpMethod  = HttpMethod.Post;
        }
        private void PrepareAddEndpointRequest(Guid hearingId, AddEndpointRequest request)
        {
            var jsonBody = RequestHelper.Serialise(request);

            Context.HttpContent = new StringContent(jsonBody, Encoding.UTF8, "application/json");

            Context.Uri        = AddEndpointToHearing(hearingId);
            Context.HttpMethod = HttpMethod.Post;
        }
        public void GivenIHaveAnInvalidAddEndpointRequest()
        {
            var conferenceId = Guid.NewGuid();
            var request      = new AddEndpointRequest
            {
                SipAddress  = string.Empty,
                DisplayName = string.Empty
            };

            SetupAddEndpointRequest(conferenceId, request);
        }
Example #5
0
        public async Task Should_pass_validation()
        {
            var request = new AddEndpointRequest
            {
                DisplayName = "Display name"
            };

            var result = await _validator.ValidateAsync(request);

            result.IsValid.Should().BeTrue();
        }
Example #6
0
        public void GivenIHaveAddEndpointToAHearingRequestWithAHearingId(Scenario scenario)
        {
            var hearingId          = GetHearingIdForTest(scenario);
            var addEndpointRequest = new AddEndpointRequest()
            {
                DisplayName = $"DisplayName{Guid.NewGuid()}",
            };

            _context.TestData.TestContextData.Add(AddEndPointRequest, addEndpointRequest);
            _context.Request = _context.Post(AddEndpointToHearing(hearingId), addEndpointRequest);
        }
Example #7
0
        public async Task Should_fail_validation_when_display_name_is_empty()
        {
            var request = new AddEndpointRequest
            {
                DisplayName = string.Empty,
            };

            var result = await _validator.ValidateAsync(request);

            result.Errors.Any(x => x.ErrorMessage == AddEndpointRequestValidation.NoDisplayNameError)
            .Should().BeTrue();
        }
        public void GivenIHaveAValidAddEndpointRequest()
        {
            var conferenceId = _context.Test.Conference.Id;
            var request      = new AddEndpointRequest
            {
                Pin             = "1234",
                SipAddress      = $"{Guid.NewGuid()}@sip.com",
                DisplayName     = "Automated Add EP test",
                DefenceAdvocate = "Defence Sol"
            };

            SetupAddEndpointRequest(conferenceId, request);
        }
        public void GivenIHaveAnNonExistentAddEndpointRequest()
        {
            var conferenceId = Guid.NewGuid();
            var request      = new AddEndpointRequest
            {
                Pin             = "1234",
                SipAddress      = "*****@*****.**",
                DisplayName     = "Automated Add EP test",
                DefenceAdvocate = "Defence Sol"
            };

            SetupAddEndpointRequest(conferenceId, request);
        }
        public async Task Should_pass_validation()
        {
            var request = new AddEndpointRequest
            {
                DisplayName     = "Display name",
                Pin             = "1234",
                SipAddress      = "*****@*****.**",
                DefenceAdvocate = "Defence Sol"
            };

            var result = await _validator.ValidateAsync(request);

            result.IsValid.Should().BeTrue();
        }
        public async Task Should_fail_validation_when_sip_address_is_empty()
        {
            var request = new AddEndpointRequest
            {
                DisplayName     = "Display name",
                Pin             = "1234",
                SipAddress      = string.Empty,
                DefenceAdvocate = "Defence Sol"
            };

            var result = await _validator.ValidateAsync(request);

            result.Errors.Any(x => x.ErrorMessage == AddEndpointRequestValidation.NoSipError)
            .Should().BeTrue();
        }
        public async Task <IActionResult> AddEndpointToConference([FromRoute] Guid conferenceId,
                                                                  [FromBody] AddEndpointRequest request)
        {
            _logger.LogDebug("Attempting to add endpoint {DisplayName} to conference", request.DisplayName);

            var command = new AddEndpointCommand(conferenceId, request.DisplayName, request.SipAddress, request.Pin, request.DefenceAdvocate);
            await _commandHandler.Handle(command);

            var conference = await _queryHandler.Handle <GetConferenceByIdQuery, Conference>(new GetConferenceByIdQuery(conferenceId));

            var endpointDtos = conference.GetEndpoints().Select(EndpointMapper.MapToEndpoint);
            await _videoPlatformService.UpdateVirtualCourtRoomAsync(conference.Id, conference.AudioRecordingRequired, endpointDtos);

            _logger.LogDebug("Successfully added endpoint {DisplayName} to conference", request.DisplayName);
            return(NoContent());
        }
        public async Task <IActionResult> AddEndPointToHearingAsync(Guid hearingId, AddEndpointRequest addEndpointRequest)
        {
            if (hearingId == Guid.Empty)
            {
                ModelState.AddModelError(nameof(hearingId), $"Please provide a valid {nameof(hearingId)}");
                return(BadRequest(ModelState));
            }

            var result = await new AddEndpointRequestValidation().ValidateAsync(addEndpointRequest);

            if (!result.IsValid)
            {
                ModelState.AddFluentValidationErrors(result.Errors);
                return(BadRequest(ModelState));
            }

            try
            {
                var newEp = EndpointToResponseMapper.MapRequestToNewEndpointDto(addEndpointRequest, _randomGenerator,
                                                                                _kinlyConfiguration.SipAddressStem);

                var command = new AddEndPointToHearingCommand(hearingId, newEp);
                await _commandHandler.Handle(command);

                var hearing =
                    await _queryHandler.Handle <GetHearingByIdQuery, VideoHearing>(new GetHearingByIdQuery(hearingId));

                var endpoint = hearing.GetEndpoints().FirstOrDefault(x => x.DisplayName.Equals(addEndpointRequest.DisplayName));
                if (endpoint != null && hearing.Status == BookingStatus.Created)
                {
                    await _eventPublisher.PublishAsync(new EndpointAddedIntegrationEvent(hearingId, endpoint));
                }
            }
            catch (HearingNotFoundException exception)
            {
                return(NotFound(exception.Message));
            }

            return(NoContent());
        }
Example #14
0
 public Task AddEndpointToConference(Guid conferenceId, AddEndpointRequest request)
 {
     _logger.LogInformation("Adding endpoint to conference: {ConferenceId}", conferenceId);
     return(_apiClient.AddEndpointToConferenceAsync(conferenceId, request));
 }
Example #15
0
 public Task AddEndpointToConference(Guid conferenceId, AddEndpointRequest request)
 {
     AddEndpointToConferenceCount++;
     return(Task.FromResult(HttpStatusCode.OK));
 }