public async Task Update_InvalidUserId_ThrowsImageAccessException() { //Arrange var updateRequest = new ImageUpdateRequest { Id = "0", UserId = "0", Description = "newCaption", ShortDescription = "newName" }; var image = new Image { Id = "0", UserId = "1", Description = "", ShortDescription = "" }; _uowMock.Setup(x => x.ImageRepository.Get(updateRequest.Id)) .ReturnsAsync(image); //Act Task Actual() => _imagesService.Update(updateRequest); //Assert await Assert.ThrowsAsync <ImageAccessException>(Actual); }
public async Task Update_ValidRequest_UpdatesSuccessfully() { //Arrange var updateRequest = new ImageUpdateRequest { Id = "0", UserId = "0", Description = "newCaption", ShortDescription = "newName" }; var image = new Image { Id = "0", UserId = "0", Description = "", ShortDescription = "" }; _uowMock.Setup(x => x.ImageRepository.Get(updateRequest.Id)) .ReturnsAsync(image); //Act await _imagesService.Update(updateRequest); //Assert Assert.True(image.Description == updateRequest.Description && image.ShortDescription == updateRequest.ShortDescription); }
public async Task <IActionResult> UpdateImage(ImageUpdateRequest request) { this.CheckUser(request.UserId); await _imageService.Update(request); return(NoContent()); }
public async Task Update(ImageUpdateRequest request) { var image = await _unitOfWork.ImageRepository.Get(request.Id); if (image == null) { throw new ObjectNotFoundException($"Image with id:{request.Id} not found."); } if (image.UserId != request.UserId) { throw new ImageAccessException("This image cannot be accessed by this user."); } _mapper.Map(request, image); await _unitOfWork.Commit(); }
public async Task Update_ImageNotExists_ThrowsObjectNotFoundException() { //Arrange var updateRequest = new ImageUpdateRequest { Id = "0", UserId = "0", Description = "newCaption", ShortDescription = "newName" }; _uowMock.Setup(x => x.ImageRepository.Get(updateRequest.Id)) .ReturnsAsync(() => null); //Act Task Actual() => _imagesService.Update(updateRequest); //Assert await Assert.ThrowsAsync <ObjectNotFoundException>(Actual); }