public void AddMessage_TwoMessagesTwoRecipients_AreListed() { // Arrange var target = new MessagesRepository(); var message1 = new Message { Recipient = "foo", Sender = "bar", Content = "Hello, World!" }; var message2 = new Message { Recipient = "baz", Sender = "bar", Content = "Hello, World!" }; // Act target.AddMessage("foo", message1); target.AddMessage("baz", message2); // Assert target.GetMessages("foo").ShouldContain(message1); target.GetMessages("baz").ShouldContain(message2); }
public void AddMessage_RecipientDifferentFromMessage_MessageRecipientIsOverwritten() { // Arrange var target = new MessagesRepository(); var message = new Message { Recipient = "foo", Sender = "bar", Content = "Hello, World!" }; // Assert target.AddMessage("baz", message); // Assert var actual = target.GetMessages("baz"); actual.Single().Recipient.ShouldBe("baz"); }
public void AddMessage_OneMessageOneRecipient_IsListed() { // Arrange var target = new MessagesRepository(); var message = new Message { Recipient = "foo", Sender = "bar", Content = "Hello, World!" }; // Assert target.AddMessage("foo", message); // Assert var actual = target.GetMessages("foo"); actual.ShouldContain(message); actual.ShouldHaveSingleItem(); }
private async Task BroadcastMessage(Message message) { var messageModel = new MessageModel { User = message.User, Text = message.Text, ChatRoomId = Guid.Parse(message.ChatRoomId) }; var room = chatRooms.First(c => c.Id.Equals(message.ChatRoomId)); if (await _messages.AddMessage(messageModel)) { await room.SendMessage(message); } else { message.Text = "Failed to add message"; _logger.LogError(message.Text); await room.ErrorMessage(message); } }