public async Task ChangeUserPhoto_Success() { //Arrange var photoFromRepo = UnitTestDataInput.photoFromRepo_UploadedCloudinary; _moqUploadService.Setup(o => o.UploadProfileImage(It.IsAny <FormFile>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(UnitTestDataInput.fileUploaded_Success); _moqRepo.Setup(o => o.PhotoRepository.GetAsync(It.IsAny <Expression <Func <Photo, bool> > >())).ReturnsAsync(UnitTestDataInput.photoFromRepo_UploadedCloudinary); _moqEnv.Setup(o => o.WebRootPath).Returns(It.IsAny <string>()); _moqUploadService.Setup(o => o.DeleteFileFromCloudinary(UnitTestDataInput.photoFromRepo_UploadedCloudinary.PublicId)).ReturnsAsync(It.IsAny <FileDeletedDto>()); _moqUploadService.Setup(o => o.DeleteFileFromLocal(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())); _moqMapper.Setup(o => o.Map(It.IsAny <PhotoFromUserProfileDto>(), It.IsAny <Photo>())); _moqRepo.Setup(o => o.PhotoRepository.Update(It.IsAny <Photo>())); _moqRepo.Setup(o => o.SaveAsync()).ReturnsAsync(true); _moqMapper.Setup(o => o.Map <PhotoForReturnUserProfileDto>(It.IsAny <Photo>())).Returns(UnitTestDataInput.photoForReturnUserProfile); //Act var httpContext = new DefaultHttpContext(); httpContext.Request.Scheme = ""; _controller.ControllerContext = new ControllerContext() { HttpContext = httpContext }; var result = await _controller.ChangeUserPhoto(It.IsAny <string>(), new PhotoFromUserProfileDto { File = It.IsAny <FormFile>() }); var createdAtRouteResult = result as CreatedAtRouteResult; //Assert Assert.NotNull(createdAtRouteResult); Assert.Equal(201, createdAtRouteResult.StatusCode); Assert.IsType <PhotoForReturnUserProfileDto>(createdAtRouteResult.Value); }