FetchAvailableScenesRequest_PresenterInSceneStackButParticipantDoesNotExist_DontReturnPresenterScene() { // arrange await Mediator.Send(new OpenConferenceRequest(ConferenceId)); await JoinParticipant(TestData.Sven); var presenterScene = new PresenterScene("invalid id"); // act var result = await Mediator.Send(new FetchAvailableScenesRequest(ConferenceId, DefaultRoomId, new[] { presenterScene })); // assert Assert.DoesNotContain(result, x => Equals(x, presenterScene)); }
public async Task FetchAvailableScenesRequest_PresenterInSceneStack_ReturnPresenterScene() { // arrange await Mediator.Send(new OpenConferenceRequest(ConferenceId)); await JoinParticipant(TestData.Sven); var presenterScene = new PresenterScene(TestData.Sven.Participant.Id); // act var result = await Mediator.Send(new FetchAvailableScenesRequest(ConferenceId, DefaultRoomId, new[] { presenterScene })); // assert Assert.Contains(result, x => Equals(x, presenterScene)); }
public async ValueTask <IEnumerable <IScene> > BuildStack(IScene scene, SceneBuilderContext context, SceneStackFunc sceneProviderFunc) { var stack = new List <IScene> { scene }; var syncObj = await GetSyncObj(context.ConferenceId, context.RoomId); if (syncObj.CurrentSpeakerId != null) { var rooms = await _mediator.FetchSynchronizedObject <SynchronizedRooms>(context.ConferenceId, SynchronizedRooms.SyncObjId); if (rooms.Participants.TryGetValue(syncObj.CurrentSpeakerId, out var roomId) && context.RoomId == roomId) { var presenterScene = new PresenterScene(syncObj.CurrentSpeakerId); stack.AddRange(await sceneProviderFunc(presenterScene, context)); } } return(stack); }