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); }
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); }
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); }
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); }
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); }
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); }
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); }