Пример #1
0
        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);
        }
Пример #2
0
        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);
        }