public async Task MessageBoardService_SendAsync_Throws_Exception_When_SendMessageRequest_Is_Null() { // Arrange var options = new DbContextOptionsBuilder <MessageBoardDbContext>() .UseInMemoryDatabase("MessageBoardDB") .Options; using (var dbContext = new MessageBoardDbContext(options)) { // Clear existing messages dbContext.Messages.RemoveRange(dbContext.Messages); await dbContext.SaveChangesAsync(); // Initialize new messages dbContext.Messages.Add(new MessageDb { User = "******", Content = "Hello Tom.", Created = DateTime.Now.AddMinutes(5) }); dbContext.Messages.Add(new MessageDb { User = "******", Content = "Hi, Rick.", Created = DateTime.Now.AddMinutes(5) }); await dbContext.SaveChangesAsync(); }; SendMessageRequest request = null; var mapper = new MessageMapper(); using (var dbContext = new MessageBoardDbContext(options)) { var service = new MessageBoardService(mapper, dbContext); // Act and Assert await Assert.ThrowsAsync <ArgumentNullException>(() => service.SendAsync(request)); }; }
public async Task MessageBoardService_SendAsync_Returns_ThreeMessages() { // Arrange var options = new DbContextOptionsBuilder <MessageBoardDbContext>() .UseInMemoryDatabase("MessageBoardDB") .Options; using (var dbContext = new MessageBoardDbContext(options)) { // Clear existing messages dbContext.Messages.RemoveRange(dbContext.Messages); await dbContext.SaveChangesAsync(); // Initialize new messages dbContext.Messages.Add(new MessageDb { User = "******", Content = "Hello Tom.", Created = DateTime.Now.AddMinutes(5) }); dbContext.Messages.Add(new MessageDb { User = "******", Content = "Hi, Rick.", Created = DateTime.Now.AddMinutes(5) }); await dbContext.SaveChangesAsync(); }; var request = new SendMessageRequest { User = "******", Message = "It works." }; var mapper = new MessageMapper(); using (var dbContext = new MessageBoardDbContext(options)) { var service = new MessageBoardService(mapper, dbContext); // Act await service.SendAsync(request); var response = await service.GetAsync(); // Assert Assert.Equal(3, response.Messages.Count); }; }
public async Task SendAsync(SendMessageRequest request) { if (request == null) { throw new ArgumentNullException("request"); } var messageDb = _mapper.ToMessageDbModel(request); messageDb.Created = DateTime.UtcNow; _dbContext.Add(messageDb); await _dbContext.SaveChangesAsync(); }