public void IndexAction_ReturnsCorrectViewModel()
        {
            var genresService = this.SetupMockGenresService();
            var viewModelMock = new Mock<GenresViewModel>();
            var controller = new ManageGenresController(genresService.Object);

            var result = controller.Genres(viewModelMock.Object) as ViewResult;

            Assert.IsInstanceOfType(result.Model, typeof(GenresViewModel));
        }
        public void IndexAction_CallCorrectServiceMethod()
        {
            var genresService = this.SetupMockGenresService();
            var viewModelMock = new Mock<GenresViewModel>();
            var controller = new ManageGenresController(genresService.Object);

            var result = controller.Genres(viewModelMock.Object) as ViewResult;

            genresService.Verify(g => g.TotalContainingText(It.IsAny<string>()), Times.Once);
            genresService.Verify(g => g.ListByContainingText(It.IsAny<string>(), It.IsAny<int>(), It.IsAny<int>()), Times.Once);
        }
        private ManageGenresController SetupController()
        {
            var genresService = new Mock<IGenresService>();

            var controller = new ManageGenresController(genresService.Object)
            {
                ControllerContext = new ControllerContext()
                {
                    HttpContext = new DefaultHttpContext()
                    {
                        User = new ClaimsPrincipal()
                    }
                },
                TempData = new Mock<ITempDataDictionary>().Object
            };

            return controller;
        }