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();
        }