public async Task Delete_given_repository_returns_false_returns_NotFound()
        {
            var repository = new Mock <IVoteRepository>();

            var controller = new VotesController(repository.Object);

            var delete = await controller.Delete(42);

            Assert.IsType <NotFoundResult>(delete);
        }
        public async Task Delete_given_id_deletes_vote()
        {
            var repository = new Mock <IVoteRepository>();

            var controller = new VotesController(repository.Object);

            await controller.Delete(42);

            repository.Verify(s => s.DeleteAsync(42));
        }
        public async Task Delete_given_valid_returns_NoContent()
        {
            var repository = new Mock <IVoteRepository>();

            repository.Setup(s => s.DeleteAsync(42)).ReturnsAsync(true);
            var controller = new VotesController(repository.Object);

            var delete = await controller.Delete(42);

            Assert.IsType <NoContentResult>(delete);
        }
        public async void Delete_Errors()
        {
            VotesControllerMockFacade mock = new VotesControllerMockFacade();
            var mockResult = new Mock <ActionResponse>();

            mockResult.SetupGet(x => x.Success).Returns(false);
            mock.ServiceMock.Setup(x => x.Delete(It.IsAny <int>())).Returns(Task.FromResult <ActionResponse>(mockResult.Object));
            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.Delete(default(int));

            response.Should().BeOfType <ObjectResult>();
            (response as ObjectResult).StatusCode.Should().Be((int)HttpStatusCode.UnprocessableEntity);
            mock.ServiceMock.Verify(x => x.Delete(It.IsAny <int>()));
        }