public void Archive_ReturnTheCorrectViewModelType()
        {
            var fakePostRepository = new Mock<IPostRepository>();
            var fakeEmailService = new Mock<IEmailer>();
            var fakeViewMapper = new Mock<IViewMapper>();
            fakeViewMapper.Setup(
                x =>
                x.MapIndexViewModel(Mother.GetTenPosts_No_Categories_NoComments_No_Tags(), 1, 5, It.IsAny<string>(),
                                    It.IsAny<bool>(), It.IsAny<string>()));

            var sut = new HomeController(fakePostRepository.Object, fakeEmailService.Object, fakeViewMapper.Object);

            ViewResult viewResult = sut.Index(1);

            var expected = viewResult.Model as BlogPostViewModel;

            Assert.IsInstanceOf<IEnumerable<IGrouping<int, Post>>>(expected);
        }
        public void Index_CallMethod_MapIndexViewModel()
        {
            List<Post> posts = Mother.GetTenPosts_No_Categories_NoComments_No_Tags();
            var fakePostRepository = new Mock<IPostRepository>();
            var fakeEmailService = new Mock<IEmailer>();
            var fakeViewMapper = new Mock<IViewMapper>();

            fakePostRepository.Setup(x => x.All).Returns(posts);

            var sut = new HomeController(fakePostRepository.Object, fakeEmailService.Object, fakeViewMapper.Object);
            sut.Index(1);

            fakeViewMapper.Verify(x => x.MapIndexViewModel(posts, 1, 5, "Index", false, string.Empty), Times.Exactly(1));
        }
        public void Index_ReturnTheCorrectModelType()
        {
            var fakePostRepository = new Mock<IPostRepository>();
            var fakeEmailService = new Mock<IEmailer>();
            var fakeViewMapper = new Mock<IViewMapper>();
            fakeViewMapper.Setup(x => x.MapIndexViewModel(It.IsAny<List<Post>>(), 1, 5, "Index", false, string.Empty))
                .Returns(()=> new BlogPostViewModel());

            fakePostRepository.Setup(x => x.All).Returns(It.IsAny<List<Post>>());

            var sut = new HomeController(fakePostRepository.Object, fakeEmailService.Object, fakeViewMapper.Object);
            var model = sut.Index(1).Model as BlogPostViewModel;

            Assert.IsInstanceOf(typeof (BlogPostViewModel), model);
        }
        public void Index_CallMethod_All()
        {
            var fakePostRepository = new Mock<IPostRepository>();
            var fakeEmailService = new Mock<IEmailer>();
            var fakeViewMapper = new Mock<IViewMapper>();

            var sut = new HomeController(fakePostRepository.Object, fakeEmailService.Object, fakeViewMapper.Object);
            sut.Index(1);

            fakePostRepository.Verify(x => x.All, Times.Once());
        }