Esempio n. 1
0
        private async Task <Participant> PrepareTalkingStick(TalkingStickMode mode)
        {
            // arrange
            await Mediator.Send(new OpenConferenceRequest(ConferenceId));

            await JoinParticipant(TestData.Sven);

            var talkingStickScene = new TalkingStickScene(mode);

            // act
            await Mediator.Send(new SetSceneRequest(ConferenceId, DefaultRoomId, talkingStickScene));

            return(TestData.Sven.Participant);
        }
Esempio n. 2
0
        public async Task FetchAvailableScenesRequest_TalkingStickInSceneStack_ReturnTalkingStick()
        {
            // arrange
            await Mediator.Send(new OpenConferenceRequest(ConferenceId));

            var talkingStickScene = new TalkingStickScene(TalkingStickMode.Queue);

            // act
            var result = await Mediator.Send(new FetchAvailableScenesRequest(ConferenceId, DefaultRoomId,
                                                                             new[] { talkingStickScene }));

            // assert
            Assert.Contains(result, x => Equals(x, talkingStickScene));
        }
Esempio n. 3
0
        public async Task SetScene_SetToTalkingStick_UpdateSynchronizedObject()
        {
            // arrange
            await Mediator.Send(new OpenConferenceRequest(ConferenceId));

            await JoinParticipant(TestData.Sven);

            var talkingStickScene = new TalkingStickScene(TalkingStickMode.Queue);

            // act
            await Mediator.Send(new SetSceneRequest(ConferenceId, DefaultRoomId, talkingStickScene));

            // assert
            var scenes = SynchronizedObjectListener.GetSynchronizedObject <SynchronizedScene>(TestData.Sven.Participant,
                                                                                              SynchronizedScene.SyncObjId(DefaultRoomId));

            Assert.Equal(talkingStickScene, scenes.SelectedScene);
            Assert.Equal(new[] { talkingStickScene }, scenes.SceneStack);
        }
        private IReadOnlyDictionary <string, JValue> GetPermissions(Participant participant,
                                                                    PresenterScene?presenterScene, TalkingStickScene scene)
        {
            var isPresenter  = participant.Id == presenterScene?.PresenterParticipantId;
            var hasPresenter = presenterScene != null;

            var permissions = Permissions[scene.Mode];

            if (isPresenter)
            {
                return(permissions.CurrentSpeaker);
            }

            if (hasPresenter)
            {
                return(permissions.Others);
            }

            return(permissions.OthersNoCurrentSpeaker);
        }