public async Task VerifyCanSendToChatChannel_PrivateChatDisabled_ReturnError()
        {
            // arrange
            var channelSelector = CreateChatChannelSelector(true);
            var mediator        = CreateMediatorWithFindConference(new ChatOptions {
                IsPrivateChatEnabled = false
            });

            var context = CreateContext(builder =>
            {
                builder.RegisterInstance(channelSelector).AsImplementedInterfaces();
                builder.RegisterInstance(mediator).AsImplementedInterfaces();
            });

            var channel = new PrivateChatChannel(new HashSet <string> {
                "1", "2"
            });

            // act
            var result = await ServiceInvokerChatMiddleware.VerifyCanSendToChatChannel(context, channel);

            // assert
            Assert.False(result.Success);
            Assert.Equal(ChatError.PrivateMessagesDisabled.Code, result.Error !.Code);
        }
        public async Task VerifyCanSendToChatChannel_ChannelSelectorSaysNo_ReturnError()
        {
            // arrange
            var channelSelector = CreateChatChannelSelector(false);

            var context = CreateContext(builder => builder.RegisterInstance(channelSelector).AsImplementedInterfaces());

            // act
            var result =
                await ServiceInvokerChatMiddleware.VerifyCanSendToChatChannel(context, GlobalChatChannel.Instance);

            // assert
            Assert.False(result.Success);
            Assert.Equal(ChatError.InvalidChannel.Code, result.Error !.Code);
        }
        public async Task VerifyCanSendToChatChannel_CanSend_ReturnSuccess()
        {
            // arrange
            var channelSelector = CreateChatChannelSelector(true);
            var mediator        = CreateMediatorWithFindConference(new ChatOptions());

            var context = CreateContext(builder =>
            {
                builder.RegisterInstance(channelSelector).AsImplementedInterfaces();
                builder.RegisterInstance(mediator).AsImplementedInterfaces();
            });

            // act
            var result =
                await ServiceInvokerChatMiddleware.VerifyCanSendToChatChannel(context, GlobalChatChannel.Instance);

            // assert
            Assert.True(result.Success);
        }