Example #1
0
        public async Task DeleteReviewShouldSetIsDeletedAndDeletedOn()
        {
            var options = new DbContextOptionsBuilder <AlexandriaDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            var db = new AlexandriaDbContext(options);
            await db.AddRangeAsync(
                new Review
            {
                Description     = "description1",
                AuthorId        = "author1",
                BookId          = 1,
                ReadingProgress = ReadingProgress.Finished,
            },
                new Review
            {
                Description     = "description2",
                AuthorId        = "author2",
                BookId          = 1,
                ReadingProgress = ReadingProgress.Finished,
            });

            await db.SaveChangesAsync();

            var reviewsService = new ReviewsService(db);

            await reviewsService.DeleteReviewByIdAsync(1);

            var result = await db.Reviews.FirstOrDefaultAsync();

            Assert.NotNull(result.DeletedOn);
            Assert.True(result.IsDeleted);
        }