public async Task should_update_participant_to_disconnected_from_virtual_room() { // Arrange conference with participant in consultation room var seededConference = await TestDataManager.SeedConference(); _newConferenceIds.Add(seededConference.Id); var consultationRoom = new ConsultationRoom(seededConference.Id, $"JudgeConsultationRoom{DateTime.UtcNow.Ticks}", VirtualCourtRoomType.JudgeJOH, false); var room = await TestDataManager.SeedRoom(consultationRoom); var newRoomId = room.Id; var pat1 = seededConference.Participants[0].Id; await TestDataManager.SeedRoomWithRoomParticipant(newRoomId, new RoomParticipant(pat1)); // Act var command = new UpdateParticipantStatusAndRoomCommand(seededConference.Id, pat1, ParticipantState.Disconnected, null, null); await _handler.Handle(command); // Assert var updatedConference = await _conferenceByIdHandler.Handle(new GetConferenceByIdQuery(seededConference.Id)); var updatedParticipant = updatedConference.GetParticipants().Single(x => x.Id == pat1); updatedParticipant.State.Should().Be(ParticipantState.Disconnected); updatedParticipant.CurrentRoom.Should().BeNull(); updatedParticipant.CurrentConsultationRoom.Should().BeNull(); }
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); }