public void AddMessageToConversation_ReturnCorrectMappedReadModel_WhereUserWhoAreGoingToReceiveThisMessage_WasNotSender() { //Arrange var saveModel = new ChatMessageSaveModel { AddresseeId = "addresseeTestId", AddresseeCanReceiveMessage = true, SenderId = "senderTestId", Content = "test content", }; var date = new DateTime(2016, 07, 06); var savedMessageDbModel = new ChatMessage { Author = new ApplicationUser { Id = saveModel.SenderId, UserName = saveModel.SenderId }, Date = date, Content = saveModel.Content }; this.conversationDbService.Setup(s => s.SaveMessage(It.IsAny<ChatMessage>())).Returns(savedMessageDbModel); //Act var messageReadModel = this.serviceUnderTest.AddMessageToConversation(saveModel); //Assert Assert.NotNull(messageReadModel); Assert.False(messageReadModel.UserWasSender); Assert.NotEmpty(messageReadModel.MessageContent); Assert.NotEmpty(messageReadModel.MessageHeader); }
/// <summary> /// Saves message in db and returns message read model /// </summary> /// <param name="chatMessageSaveModel">Model with message parameters</param> /// <returns>Message read model</returns> public ChatMessageReadModel AddMessageToConversation(ChatMessageSaveModel chatMessageSaveModel) { var messageDbModel = new ChatMessage(); messageDbModel.AuthorId = chatMessageSaveModel.SenderId; messageDbModel.Content = chatMessageSaveModel.Content; messageDbModel.ConversationId = chatMessageSaveModel.ConversationId; messageDbModel.Date = DateTime.Now; messageDbModel.Received = chatMessageSaveModel.AddresseeCanReceiveMessage; messageDbModel = this.conversationDbService.SaveMessage(messageDbModel); return MapChatMessageToReadModel(chatMessageSaveModel.AddresseeId, messageDbModel); }