public void UploadPhoto_ThrowException() { var authServiceMock = new Mock <IAuthService>(); var dataServiceMock = new Mock <IDataService>(); Guid userId = Guid.NewGuid(); var fileToUploadDto = new FileToUploadDto() { FileName = "newPhoto.jpg", Description = "New photo.", Content = "base64Format" }; authServiceMock.Setup(u => u.UserExists(userId)).Returns(true); dataServiceMock.Setup(u => u.SaveAll()).Throws(new Exception("Cannot save changes in database.")); var controller = new PhotosController(dataServiceMock.Object, authServiceMock.Object); var context = new ControllerContext() { HttpContext = new DefaultHttpContext { User = new ClaimsPrincipal(new ClaimsIdentity(new List <Claim> { new Claim(ClaimTypes.Name, userId.ToString()) }, "Bearer")) } }; controller.ControllerContext = context; var result = controller.UploadFile(fileToUploadDto); var statusCode = ((ObjectResult)result).StatusCode; var jsonValue = JsonConvert.SerializeObject(((ObjectResult)result).Value); var dictionary = JsonConvert.DeserializeObject <Dictionary <object, object> >(jsonValue); Assert.True(statusCode == 500); Assert.Equal("Cannot save changes in database.", dictionary["Error"]); authServiceMock.VerifyAll(); dataServiceMock.VerifyAll(); }