示例#1
0
        public async Task EditReviewShouldWorkCorrectly(string description, ReadingProgress progress, bool thisEdition)
        {
            var options = new DbContextOptionsBuilder <AlexandriaDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            var db = new AlexandriaDbContext(options);
            await db.AddAsync(
                new Review
            {
                Description     = "description1",
                AuthorId        = "author1",
                BookId          = 1,
                ReadingProgress = ReadingProgress.Unknown,
                ThisEdition     = false,
            });

            await db.SaveChangesAsync();

            var reviewsService = new ReviewsService(db);

            await reviewsService.EditReviewAsync(1, description, progress, thisEdition);

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

            Assert.NotNull(result.ModifiedOn);
            Assert.Equal(description, result.Description);
            Assert.Equal(progress, result.ReadingProgress);
            Assert.Equal(thisEdition, result.ThisEdition);
        }
        public void EditReviewAsyncThrowsArgumentExceptionWhenGivenInvalidReviewAuthorId()
        {
            var reviews = new List <Review>();
            var review  = new Review()
            {
                ReviewNumber   = "pesho",
                Id             = "test123",
                ReviewAuthorId = "gosho"
            };

            reviews.Add(review);
            var mockReviewsRepo = new Mock <IReviewsRepository>();;

            mockReviewsRepo.Setup(x => x.GetReviewByReviewNumber("pesho")).Returns(review);

            var service = new ReviewsService(mockReviewsRepo.Object, null);

            Assert.ThrowsAsync <ArgumentException>(() => service.EditReviewAsync("pesho", "ivan", "blank"));
        }
        public async Task EditReviewAsyncWorksCorrectly()
        {
            var reviews = new List <Review>();
            var review  = new Review()
            {
                ReviewNumber   = "pesho",
                Id             = "test123",
                ReviewAuthorId = "gosho"
            };

            reviews.Add(review);
            var mockReviewsRepo = new Mock <IReviewsRepository>();;

            mockReviewsRepo.Setup(x => x.GetReviewByReviewNumber("pesho")).Returns(review);

            var service = new ReviewsService(mockReviewsRepo.Object, null);

            await service.EditReviewAsync("pesho", "gosho", "blank");

            Assert.Single(reviews);
            Assert.Equal("blank", reviews.First().ReviewInfo);
        }