public void Should_Throw_Conference_Not_Found_Exception_If_Conference_Does_Not_Exist() { var fakeConferenceId = Guid.NewGuid(); var query = new GetAvailableConsultationRoomsByRoomTypeQuery(VirtualCourtRoomType.JudgeJOH, fakeConferenceId); _handler.Invoking(x => x.Handle(query)).Should().ThrowAsync <ConferenceNotFoundException>(); }
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); }
public async Task Should_returns_room_with_status_live_or_created_for_the_given_room_type() { var seededConference = await TestDataManager.SeedConference(); TestContext.WriteLine($"New seeded conference id: {seededConference.Id}"); _newConferenceId = seededConference.Id; var participant = seededConference.Participants.First(x => x.UserRole == UserRole.Judge); var listRooms = GetListRoom(_newConferenceId); var roomSaved = await TestDataManager.SeedRooms(listRooms); await TestDataManager.SeedRoomWithRoomParticipant(roomSaved[0].Id, new RoomParticipant(participant.Id)); _expectedIds = new List <long> { roomSaved[1].Id, roomSaved[2].Id, roomSaved[3].Id }; _notExpectedIds = new List <long> { roomSaved[0].Id, roomSaved[4].Id }; await using var db = new VideoApiDbContext(VideoBookingsDbContextOptions); var roomToUpdate = await db.Rooms.Include(x => x.RoomParticipants).SingleAsync(x => x.Id == roomSaved[0].Id); roomToUpdate.RemoveParticipant(new RoomParticipant(participant.Id)); await db.SaveChangesAsync(); var query = new GetAvailableConsultationRoomsByRoomTypeQuery(VirtualCourtRoomType.JudgeJOH, _newConferenceId); var result = await _handler.Handle(query); result.Should().NotBeEmpty(); result.Any(x => x.Id == _expectedIds[0]).Should().Be(true); result.Any(x => x.Id == _expectedIds[1]).Should().Be(true); result.Any(x => x.Id == _expectedIds[2]).Should().Be(true); result.Any(x => x.Id == _notExpectedIds[0]).Should().Be(false); result.Any(x => x.Id == _notExpectedIds[1]).Should().Be(false); }