public void CallUploadImage_WhenModelUploadIsValid()
        {
            // Arrange
            var username  = "******";
            var user      = new User();
            var viewModel = new IndividualViewModel();
            var mockedIndividualService = new Mock <IIndividualService>();
            var mockedPhotoHelper       = new Mock <IPhotoHelper>();
            var mockedUserProvider      = new Mock <IUserProvider>();

            mockedUserProvider.Setup(x => x.FindByName(It.IsAny <string>())).Returns(user);
            mockedUserProvider.Setup(x => x.Update(user)).Verifiable();
            var mockedMapper = new Mock <IMapper>();

            mockedMapper.Setup(x => x.Map <SofiaDayAndNight.Data.Models.Individual>(It.IsAny <IndividualViewModel>()))
            .Returns(new SofiaDayAndNight.Data.Models.Individual());

            var mockedUpload = new Mock <HttpPostedFileBase>();

            mockedUpload.SetupGet(x => x.ContentLength).Returns(1);
            mockedPhotoHelper.Setup(x => x.UploadImage(mockedUpload.Object)).Verifiable();

            var principal         = new Mock <IPrincipal>();
            var controllerContext = new Mock <ControllerContext>();

            principal.SetupGet(x => x.Identity.Name).Returns(username);
            controllerContext.SetupGet(x => x.HttpContext.User).Returns(principal.Object);

            var controller = new IndividualController(
                mockedIndividualService.Object,
                mockedMapper.Object,
                mockedPhotoHelper.Object,
                mockedUserProvider.Object);

            controller.ModelState.Clear();
            controller.ControllerContext = controllerContext.Object;

            // Act
            controller.Submit(viewModel, mockedUpload.Object);

            // Assert
            mockedPhotoHelper.Verify(x => x.UploadImage(mockedUpload.Object), Times.Once);
        }