Ejemplo n.º 1
0
        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));
            };
        }
Ejemplo n.º 2
0
        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();
        }