public async Task should_not_send_messages_between_participants()
        {
            SetupSendMessageTests();
            // setup claims to return admin username
            var claims = new ClaimsPrincipalBuilder().WithUsername(RepresentativeUsername)
                         .WithRole(AppRoles.RepresentativeRole)
                         .Build();

            UpdateUserIdentity(claims);

            var          fromParticipantId = RepresentativeParticipantId.ToString();
            var          fromUsername      = RepresentativeUsername;
            var          toParticipantId   = IndividualParticipantId.ToString();
            var          toUsername        = IndividualUsername;
            const string message           = "test message";
            var          messageUuid       = Guid.NewGuid();

            await Hub.SendMessage(Conference.Id, message, toUsername, messageUuid);

            AssertMessageNotSentToHub(fromParticipantId, toParticipantId, message, messageUuid, IndividualGroupChannel);
            AssertMessageNotSentToApi(fromUsername, toUsername, message);
            AdminGroupChannel.Verify(x => x.AdminAnsweredChat(Conference.Id, toUsername), Times.Never);

            LoggerMock.Verify(
                x => x.Log(
                    LogLevel.Error,
                    It.IsAny <EventId>(),
                    It.IsAny <It.IsAnyType>(),
                    It.IsAny <InvalidInstantMessageException>(),
                    (Func <It.IsAnyType, Exception, string>)It.IsAny <object>()),
                Times.Once);
        }
        should_send_message_to_admin_group_and_participant_group_when_individual_sends_message_to_admin()
        {
            SetupSendMessageTests();
            // setup claims to return individual username
            var claims = new ClaimsPrincipalBuilder().WithUsername(IndividualUsername).WithRole(AppRoles.CitizenRole)
                         .Build();

            UpdateUserIdentity(claims);

            var          fromIndividualId = IndividualParticipantId.ToString();
            var          fromUsername     = IndividualUsername;
            var          toUsername       = AdminUserProfile.UserName;
            const string message          = "test message";
            var          messageUuid      = Guid.NewGuid();

            await Hub.SendMessage(Conference.Id, message, toUsername, messageUuid);

            AssertMessageSentToHub(fromIndividualId, toUsername, message, messageUuid, IndividualGroupChannel);
            AssertMessageSentStatusToApi(fromUsername, toUsername, message, Times.Once());

            AdminGroupChannel.Verify(x => x.AdminAnsweredChat(Conference.Id, toUsername), Times.Never);
        }