コード例 #1
0
        public async Task NewMessage_Success_NotifyMessageGroupUsersConnection()
        {
            var testGroup = new Group {
                Id = TestGroupId, Users = TestUsersGroup
            };
            var testPayload = new UserWssPayload
            {
                NewMessage = TestNewMessage,
                GroupId    = TestGroupId
            };

            _chatServiceMock
            .Setup(s => s.AddMessageAsync(
                       It.Is <GroupMessage>(m => m.Content == TestNewMessage),
                       TestGroupId))
            .Returns(Task.CompletedTask);
            _chatServiceMock
            .Setup(s => s.GetGroupAsync(TestGroupId))
            .ReturnsAsync(testGroup);

            await _target.NewMessage(testPayload);

            // message integrity should be tested in e2e instead
            AssertMessageSentToGroupUsersConnection(ChatHub.NewMessageMessage, content => true);
        }
コード例 #2
0
        public async Task InitializeState_HasState_NotifyCurrentConnection()
        {
            var testPayload = new UserWssPayload();
            var testRes     = new InitialStateResponse();

            _chatServiceMock
            .Setup(s => s.GetConnectionInitialStateAsync(TestUserId))
            .ReturnsAsync(testRes);

            await _target.InitializeState(testPayload);

            AssertMessageSentToCurrentConnection(ChatHub.InitialStateMessage,
                                                 content => content == testRes);
        }
コード例 #3
0
        public async Task JoinGroup_Failed_NotifyCurrentConnection()
        {
            var testPayload = new UserWssPayload {
                GroupId = TestGroupId
            };

            _chatServiceMock
            .Setup(s => s.JoinGroupAsync(TestUserId, TestGroupId))
            .ReturnsAsync(false);

            await _target.JoinGroup(testPayload);

            AssertMessageSentToCurrentConnection(ChatHub.JoinResultMessage,
                                                 content => ((JoinResponse)content).Success == false);
        }
コード例 #4
0
        public async Task NewGroup_Failed_NotifyCurrentConnection()
        {
            var testPayload = new UserWssPayload {
                NewGroupName = TestGroupName
            };

            _chatServiceMock
            .Setup(s => s.NewGroupAsync(TestUserId, testPayload.NewGroupName))
            .ReturnsAsync((false, null));

            await _target.NewGroup(testPayload);

            AssertMessageSentToCurrentConnection(ChatHub.NewGroupResultMessage,
                                                 content => ((NewGroupResultResponse)content).Success == false);
        }
コード例 #5
0
        public async Task LeaveGroup_Success_NotifyCurrentAndAllConnection()
        {
            var testPayload = new UserWssPayload {
                GroupId = TestGroupId
            };
            var testGroup = new Group {
                Id = TestGroupId
            };

            _chatServiceMock
            .Setup(s => s.LeaveGroupAsync(TestUserId, TestGroupId))
            .Returns(Task.CompletedTask);
            _chatServiceMock
            .Setup(s => s.GetGroupAsync(testGroup.Id))
            .ReturnsAsync(testGroup);

            await _target.LeaveGroup(testPayload);

            AssertMessageSentToCurrentConnection(ChatHub.LeaveSuccessMessage,
                                                 content => (string)content == TestGroupId);
            AssertMessageSentToAllConnections(ChatHub.MemberLeftMessage,
                                              content => ((MemberChangeResponse)content).Group == testGroup);
        }
コード例 #6
0
        public async Task JoinGroup_Success_NotifyCurrentAndAllConnection()
        {
            var testPayload = new UserWssPayload {
                GroupId = TestGroupId
            };
            var testGroup = new Group {
                Id = TestGroupId
            };

            _chatServiceMock
            .Setup(s => s.JoinGroupAsync(TestUserId, TestGroupId))
            .ReturnsAsync(true);
            _chatServiceMock
            .Setup(s => s.GetGroupAsync(testGroup.Id))
            .ReturnsAsync(testGroup);

            await _target.JoinGroup(testPayload);

            AssertMessageSentToCurrentConnection(ChatHub.JoinResultMessage,
                                                 content => ((JoinResponse)content).Group == testGroup);
            AssertMessageSentToAllConnections(ChatHub.NewMemberMessage,
                                              content => ((MemberChangeResponse)content).Group == testGroup);
        }
コード例 #7
0
        public async Task NewGroup_Success_NotifyCurrentAndAllConnection()
        {
            var testPayload = new UserWssPayload {
                NewGroupName = TestGroupName
            };
            var testGroup = new Group {
                Id = TestGroupId
            };

            _chatServiceMock
            .Setup(s => s.NewGroupAsync(TestUserId, testPayload.NewGroupName))
            .ReturnsAsync((true, testGroup.Id));
            _chatServiceMock
            .Setup(s => s.GetGroupAsync(testGroup.Id))
            .ReturnsAsync(testGroup);

            await _target.NewGroup(testPayload);

            AssertMessageSentToCurrentConnection(ChatHub.NewGroupResultMessage,
                                                 content => ((NewGroupResultResponse)content).Group == testGroup);
            AssertMessageSentToAllConnections(ChatHub.NewGroupMessage,
                                              content => ((NewGroupResponse)content).Group == testGroup);
        }