public async Task Should_Create_ConsultationRoom_If_None_Are_Available() { _queryHandler .Setup(x => x.Handle <GetAvailableConsultationRoomsByRoomTypeQuery, List <ConsultationRoom> >(It.IsAny <GetAvailableConsultationRoomsByRoomTypeQuery>())) .ReturnsAsync(new List <ConsultationRoom>()); var consultationRoomParams = new CreateConsultationRoomParams { Room_label_prefix = _request.RoomType.ToString() }; _kinlyApiClient .Setup(x => x.CreateConsultationRoomAsync(It.IsAny <string>(), It.IsAny <CreateConsultationRoomParams>())) .ReturnsAsync(new CreateConsultationRoomResponse() { Room_label = "Label" }); var returnedRoom = await _consultationService.GetAvailableConsultationRoomAsync(_request.ConferenceId, _request.RoomType.MapToDomainEnum()); _kinlyApiClient.Verify(x => x.CreateConsultationRoomAsync(It.Is <string>( y => y.Equals(_request.ConferenceId.ToString())), It.Is <CreateConsultationRoomParams>( y => y.Room_label_prefix.Equals(consultationRoomParams.Room_label_prefix))), Times.Once); returnedRoom.Should().BeOfType <ConsultationRoom>(); returnedRoom.Should().NotBeNull(); }
public async Task Should_Create_New_ConsultationRoom() { var mockCommand = new CreateConsultationRoomCommand(_request.ConferenceId, "Judge", _request.RoomType.MapToDomainEnum(), false); _commandHandler.Setup(x => x.Handle(mockCommand)); var consultationRoomParams = new CreateConsultationRoomParams { Room_label_prefix = _request.RoomType.ToString() }; _kinlyApiClient .Setup(x => x.CreateConsultationRoomAsync(It.IsAny <string>(), It.IsAny <CreateConsultationRoomParams>())) .ReturnsAsync(new CreateConsultationRoomResponse() { Room_label = "Label" }); var returnedRoom = await _consultationService.CreateNewConsultationRoomAsync(_request.ConferenceId, _request.RoomType.MapToDomainEnum()); _kinlyApiClient.Verify(x => x.CreateConsultationRoomAsync(It.Is <string>( y => y.Equals(_request.ConferenceId.ToString())), It.Is <CreateConsultationRoomParams>( y => y.Room_label_prefix.Equals(consultationRoomParams.Room_label_prefix))), Times.Once); returnedRoom.Should().BeOfType <ConsultationRoom>(); returnedRoom.Should().NotBeNull(); }
public async Task <ConsultationRoom> GetAvailableConsultationRoomAsync(Guid conferenceId, VirtualCourtRoomType roomType) { var query = new GetAvailableConsultationRoomsByRoomTypeQuery(roomType, conferenceId); var listOfRooms = await _queryHandler.Handle <GetAvailableConsultationRoomsByRoomTypeQuery, List <ConsultationRoom> >(query); var room = listOfRooms?.FirstOrDefault(x => x.Type.Equals(roomType)); if (room == null) { var consultationRoomParams = new CreateConsultationRoomParams { Room_label_prefix = roomType.ToString() }; var createConsultationRoomResponse = await CreateConsultationRoomAsync(conferenceId.ToString(), consultationRoomParams); var createRoomCommand = new CreateConsultationRoomCommand(conferenceId, createConsultationRoomResponse.Room_label, roomType, false); await _commandHandler.Handle(createRoomCommand); room = new ConsultationRoom(conferenceId, createConsultationRoomResponse.Room_label, roomType, false); } return(room); }
private Task <CreateConsultationRoomResponse> CreateConsultationRoomAsync(string virtualCourtRoomId, CreateConsultationRoomParams createConsultationRoomParams) { _logger.LogTrace( "Creating a consultation for VirtualCourtRoomId: {VirtualCourtRoomId} with prefix {CreateConsultationRoomParamsPrefix}", virtualCourtRoomId, createConsultationRoomParams.Room_label_prefix); return(_kinlyApiClient.CreateConsultationRoomAsync(virtualCourtRoomId, createConsultationRoomParams)); }
public async Task <ConsultationRoom> CreateNewConsultationRoomAsync(Guid conferenceId, VirtualCourtRoomType roomType = VirtualCourtRoomType.Participant, bool locked = false) { var consultationRoomParams = new CreateConsultationRoomParams { Room_label_prefix = roomType.ToString() }; var createConsultationRoomResponse = await CreateConsultationRoomAsync(conferenceId.ToString(), consultationRoomParams); var createRoomCommand = new CreateConsultationRoomCommand(conferenceId, createConsultationRoomResponse.Room_label, roomType, locked); await _commandHandler.Handle(createRoomCommand); var room = new ConsultationRoom(conferenceId, createConsultationRoomResponse.Room_label, roomType, locked); return(room); }