コード例 #1
0
        public async Task GetAuthorIdByIdMethodShouldReturnNullIfPostIsDeleted()
        {
            var options = new DbContextOptionsBuilder <ForumDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            var db = new ForumDbContext(options);
            var dateTimeProvider = new Mock <IDateTimeProvider>();

            dateTimeProvider.Setup(dtp => dtp.Now()).Returns(new DateTime(2020, 3, 27));

            var post = new Post
            {
                Id          = 1,
                Title       = "Test title 1",
                Description = "Test description 1",
                Type        = PostType.Discussion,
                CategoryId  = 1,
                AuthorId    = "Test author id",
                IsDeleted   = true,
                CreatedOn   = dateTimeProvider.Object.Now(),
                DeletedOn   = dateTimeProvider.Object.Now()
            };

            await db.Posts.AddAsync(post);

            await db.SaveChangesAsync();

            var postsService = new PostsService(db, null, null, dateTimeProvider.Object);

            var authorId = await postsService.GetAuthorIdByIdAsync(1);

            authorId.Should().BeNull();
        }