Exemple #1
0
        public async Task TestRemoveReviewDto()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <BookDbContext>();

            using var context = new BookDbContext(options);
            context.Database.EnsureCreated();
            var books = context.SeedDatabaseFourBooks();

            context.ChangeTracker.Clear();

            var utData  = context.SetupSingleDtoAndEntities <RemoveReviewDto>();
            var service = new CrudServicesAsync(context, utData.ConfigAndMapper);

            //ATTEMPT
            var dto = new RemoveReviewDto {
                BookId = books[3].BookId, ReviewId = books[3].Reviews.Last().ReviewId
            };
            await service.UpdateAndSaveAsync(dto);

            //VERIFY
            var book = context.Books.Include(x => x.Reviews).Single(x => x.BookId == books[3].BookId);

            book.Reviews.Count.ShouldEqual(1);
        }
Exemple #2
0
        public async Task TestDeleteReviewOk()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <ExampleDbContext>();

            using (var context = new ExampleDbContext(options))
            {
                context.Database.EnsureCreated();
                context.SeedDatabase();

                var controller = new BookController();
                var utData     = context.SetupSingleDtoAndEntities <AddReviewDto>(_genericServiceConfig);
                var service    = new CrudServicesAsync(context, utData.ConfigAndMapper);

                //ATTEMPT
                var dto = new AddReviewDto()
                {
                    BookId    = 1,
                    Title     = "Efcore in action",
                    VoterName = "test",
                    NumStars  = 5,
                    Comment   = "test comment",
                };
                var response = await controller.AddReview(dto, service);

                //VERIFY
                response.GetStatusCode().ShouldEqual(200);


                //Delete review

                utData  = context.SetupSingleDtoAndEntities <RemoveReviewDto>(_genericServiceConfig);
                service = new CrudServicesAsync(context, utData.ConfigAndMapper);

                //ATTEMPT
                var removeReviewDto = new RemoveReviewDto()
                {
                    BookId   = 1,
                    ReviewId = 1
                };
                response = await controller.DeleteReview(removeReviewDto, service);

                //VERIFY
                response.GetStatusCode().ShouldEqual(200);
            }
        }
Exemple #3
0
        public async Task <ActionResult <WebApiMessageOnly> > DeleteReview(RemoveReviewDto item, [FromServices] ICrudServicesAsync service)
        {
            await service.UpdateAndSaveAsync(item, nameof(Book.RemoveReview));

            return(service.Response());
        }