public async Task SendMessageAsync_WithInvalidModel_ReturnsNull() { var testMessageContent = string.Empty; var testSentOn = DateTime.UtcNow; var context = new PoolItDbContext(new DbContextOptionsBuilder <PoolItDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options); var conversation = new Conversation(); context.Conversations.Add(conversation); var author = new PoolItUser { UserName = "******" }; context.Users.Add(author); context.SaveChanges(); var conversationsService = new ConversationsService( new EfRepository <Conversation>(context), new EfRepository <PoolItUser>(context), new EfRepository <Message>(context) ); // Act var result = await conversationsService.SendMessageAsync(new MessageServiceModel { ConversationId = conversation.Id, Author = new PoolItUserServiceModel { UserName = author.UserName }, SentOn = testSentOn, Content = testMessageContent }); // Assert Assert.Null(result); var dbCount = await context.Messages.CountAsync(); Assert.Equal(0, dbCount); }
public async Task SendMessageAsync_WithValidModel_WorksCorrectly() { const string expectedMessageContent = "Test Message Content"; var expectedSentOn = DateTime.UtcNow; var context = new PoolItDbContext(new DbContextOptionsBuilder <PoolItDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options); var conversation = new Conversation(); context.Conversations.Add(conversation); var author = new PoolItUser { UserName = "******" }; context.Users.Add(author); context.SaveChanges(); var conversationsService = new ConversationsService( new EfRepository <Conversation>(context), new EfRepository <PoolItUser>(context), new EfRepository <Message>(context) ); // Act var result = await conversationsService.SendMessageAsync(new MessageServiceModel { ConversationId = conversation.Id, Author = new PoolItUserServiceModel { UserName = author.UserName }, SentOn = expectedSentOn, Content = expectedMessageContent }); // Assert var dbMessage = await context.Messages.SingleAsync(m => m.Id == result.Id); Assert.Equal(expectedMessageContent, dbMessage.Content); Assert.Equal(expectedSentOn, dbMessage.SentOn); }