Exemplo n.º 1
0
        public async Task ShouldThrowReviewResourceNotFoundExceptionOnUpdate()
        {
            _reviewRepositoryMock.GetById(Arg.Any <Guid>()).Returns(null as Review);
            CreateOrUpdateReviewRequestModel model = new CreateOrUpdateReviewRequestModel()
            {
                Image = new MemoryStream(),
                Stars = 1,
                Text  = "TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT",
                Title = "TITLE"
            };

            Exception exception = await Record.ExceptionAsync(() => _reviewService.Update(_fakeInsertedConfirmedUser.Id.ToString(), Guid.NewGuid().ToString(), model));

            Assert.IsType <ResourceNotFoundException>(exception);
        }
Exemplo n.º 2
0
        public async Task <IdResponseModel> Create(string userId, CreateOrUpdateReviewRequestModel model)
        {
            await new CreateOrUpdateReviewValidator().ValidateRequestModelAndThrow(model);

            Review review = new Review(model.Title, model.Text, model.Stars, Guid.Parse(userId));

            review.AddImage(await UploadImage(model.Image));

            await _reviewRepository.Create(review);

            await _reviewRepository.Save();

            return(new IdResponseModel()
            {
                Id = review.Id
            });
        }
Exemplo n.º 3
0
        public async Task ShouldThrowForbiddenExceptionOnUpdate()
        {
            Guid reviewCreatorIdDifferentThanAuthenticatedUserId = Guid.NewGuid();

            _reviewRepositoryMock.GetById(Arg.Any <Guid>()).Returns(new Review("", "", 1, reviewCreatorIdDifferentThanAuthenticatedUserId));
            CreateOrUpdateReviewRequestModel model = new CreateOrUpdateReviewRequestModel()
            {
                Image = new MemoryStream(),
                Stars = 1,
                Text  = "TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT",
                Title = "TITLE"
            };

            Exception exception = await Record.ExceptionAsync(() => _reviewService.Update(_fakeInsertedConfirmedUser.Id.ToString(), Guid.NewGuid().ToString(), model));

            Assert.IsType <ForbiddenException>(exception);
        }
Exemplo n.º 4
0
 public async Task <IActionResult> Create([FromForm] CreateOrUpdateReviewModel model)
 {
     try
     {
         CreateOrUpdateReviewRequestModel serviceModel = new CreateOrUpdateReviewRequestModel()
         {
             Image = model.Image.OpenReadStream(),
             Stars = model.Stars,
             Text  = model.Text,
             Title = model.Title
         };
         return(CreatedAtRoute("", await _reviewService.Create(this.GetUserIdFromToken(), serviceModel)));
     }
     catch (Exception exception)
     {
         return(this.HandleExceptionToUserAndLogIfExceptionIsUnexpected(exception));
     }
 }
Exemplo n.º 5
0
        public async Task Update(string userId, string reviewId, CreateOrUpdateReviewRequestModel model)
        {
            await new CreateOrUpdateReviewValidator().ValidateRequestModelAndThrow(model);

            Review review = await _reviewRepository.GetById(Guid.Parse(reviewId));

            if (review == null)
            {
                throw new ResourceNotFoundException("review not found.");
            }
            ThrowIfAuthenticatedUserNotBeReviewCreator(review, Guid.Parse(userId));

            review.Update(model.Title, model.Text, model.Stars);
            _reviewRepository.Update(review);
            await _reviewRepository.Save();

            await _cacheDatabase.Remove(reviewId);
        }
Exemplo n.º 6
0
        public async Task ShouldCreateReview()
        {
            CreateOrUpdateReviewRequestModel model = new CreateOrUpdateReviewRequestModel()
            {
                Image = new MemoryStream(),
                Text  = "TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT ",
                Title = "TITLE",
                Stars = 1
            };

            _fileUploadUtilsMock.UploadImage(Arg.Any <Stream>()).Returns(new FileDTO()
            {
                FileName = "FILENAME", FilePath = "FILEPATH"
            });

            Exception exception = await Record.ExceptionAsync(() => _reviewService.Create(Guid.NewGuid().ToString(), model));

            Assert.Null(exception);
            await _reviewRepositoryMock.Received(1).Create(Arg.Any <Review>());

            await _reviewRepositoryMock.Received(1).Save();
        }
Exemplo n.º 7
0
        public async Task ShouldUpdate()
        {
            Guid   reviewId       = Guid.NewGuid();
            Review insertedReview = new Review(reviewId, "", "", 1, _fakeInsertedConfirmedUser.Id);

            _reviewRepositoryMock.GetById(Arg.Any <Guid>()).Returns(insertedReview);
            CreateOrUpdateReviewRequestModel model = new CreateOrUpdateReviewRequestModel()
            {
                Image = new MemoryStream(),
                Stars = 1,
                Text  = "TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT",
                Title = "TITLE"
            };

            Exception exception = await Record.ExceptionAsync(() => _reviewService.Update(_fakeInsertedConfirmedUser.Id.ToString(), reviewId.ToString(), model));

            Assert.Null(exception);
            _reviewRepositoryMock.Received(1).Update(Arg.Any <Review>());
            await _reviewRepositoryMock.Received(1).Save();

            await _cacheDatabaseUtilsMock.Received(1).Remove(Arg.Any <string>());
        }