public async Task Get_given_non_existing_returns_NotFound()
        {
            var repo       = new Mock <IVoteRepository>();
            var controller = new VotesController(repo.Object);

            var get = await controller.Get(42);

            var res = get.Result;

            Assert.IsType <NotFoundResult>(res);
        }
        public async Task Get_existing_id_returns_dto()
        {
            var dto  = new VoteDTO();
            var repo = new Mock <IVoteRepository>();

            repo.Setup(s => s.FindAsync(42)).ReturnsAsync(dto);
            var controller = new VotesController(repo.Object);

            var get = await controller.Get(42);

            Assert.Equal(dto, get.Value);
        }
        public async Task GetVotes_returns_all()
        {
            IList <VoteDTO> dtos = new List <VoteDTO>()
            {
                new VoteDTO()
            };
            var repo = new Mock <IVoteRepository>();

            repo.Setup(s => s.ReadAsync()).ReturnsAsync(dtos);
            var controller = new VotesController(repo.Object);

            var get = await controller.Get();
        }
        public async void Get_Not_Exists()
        {
            VotesControllerMockFacade mock = new VotesControllerMockFacade();

            mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiVotesResponseModel>(null));
            VotesController controller = new VotesController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.Get(default(int));

            response.Should().BeOfType <StatusCodeResult>();
            (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound);
            mock.ServiceMock.Verify(x => x.Get(It.IsAny <int>()));
        }