public async void TestVoteFunctionality()
        {
            UserManager <ApplicationUser> userManager = MockUserManager();

            var mockVoteService = new Mock <IVotesService>();

            mockVoteService.Setup(x => x.VoteAsync(VotesControllerTest.FirstTestImageId, It.IsAny <string>(), true))
            .ReturnsAsync(false);
            mockVoteService.Setup(x => x.VoteAsync(VotesControllerTest.FirstTestImageId, It.IsAny <string>(), false))
            .ReturnsAsync(true);

            var mockImageService = new Mock <IImagesService>();

            mockImageService.Setup(x => x.GetImageById <Image>(It.IsAny <string>()))
            .Returns(new Image()
            {
                Id = VotesControllerTest.FirstTestImageId,
            });

            VotesController controller = new VotesController(
                userManager,
                mockVoteService.Object,
                mockImageService.Object).WithIdentity(FirstTestUserId, "TestUser");

            VoteInputModel model = new VoteInputModel()
            {
                ImageId = VotesControllerTest.FirstTestImageId,
                IsLike  = false,
            };

            ActionResult <VoteResponseModel> result = await controller.Index(model);

            Assert.True(result.Value.Result);

            model.IsLike = true;
            result       = await controller.Index(model);

            Assert.False(result.Value.Result);
        }
        public async void ValidateInputModel()
        {
            UserManager <ApplicationUser> userManager = MockUserManager();

            var mockVoteService  = new Mock <IVotesService>();
            var mockImageService = new Mock <IImagesService>();

            VotesController controller = new VotesController(
                userManager,
                mockVoteService.Object,
                mockImageService.Object).WithIdentity(FirstTestUserId, "TestUser");

            ActionResult <VoteResponseModel> result = await controller.Index(null);

            Assert.IsType <BadRequestResult>(result.Result);

            result = await controller.Index(new VoteInputModel()
            {
                ImageId = null,
            });

            Assert.IsType <BadRequestResult>(result.Result);
        }