public void Forum_ThreadController_Index_ShouldCallViewModelFactoryWithCorrectData(int atPosition, int expectedId) { // Arrange var data = new Mock <IUowData>(); var pagerFactory = new Mock <IPagerViewModelFactory>(); var viewModelFactory = new Mock <IViewModelFactory>(); data.Setup(d => d.Threads.All()).Returns(TestThread().AsQueryable()); data.Setup(d => d.Answers.All()).Returns(AnswersCollection().AsQueryable); Mapper.Initialize(cfg => { cfg.CreateMap <Thread, ThreadViewModel>(); cfg.CreateMap <Answer, AnswerViewModel>(); cfg.CreateMap <Comment, CommentViewModel>(); }); var controller = new ThreadController(data.Object, pagerFactory.Object, viewModelFactory.Object); // Act var result = controller.Index(1) as ViewResult; // Assert viewModelFactory.Verify(p => p.CreateForumThreadViewModel(It.Is <ThreadViewModel>(t => t.Id == 1 && t.Published == new DateTime(2017, 01, 01)), It.Is <IEnumerable <AnswerViewModel> >(l => l.ElementAt(atPosition).Id == expectedId), null)); }
public void Forum_ThreadController_Index_ShouldCallPagerViewModelFactoryWithCorrectData(int page) { // Arrange var data = new Mock <IUowData>(); var pagerFactory = new Mock <IPagerViewModelFactory>(); var viewModelFactory = new Mock <IViewModelFactory>(); data.Setup(d => d.Threads.All()).Returns(TestThread().AsQueryable()); data.Setup(d => d.Answers.All()).Returns(AnswersCollection().AsQueryable); Mapper.Initialize(cfg => { cfg.CreateMap <Thread, ThreadViewModel>(); cfg.CreateMap <Answer, AnswerViewModel>(); cfg.CreateMap <Comment, CommentViewModel>(); }); var controller = new ThreadController(data.Object, pagerFactory.Object, viewModelFactory.Object); // Act var result = controller.Index(1, page) as ViewResult; // Assert pagerFactory.Verify(p => p.CreatePagerViewModel("Thread", page, 6, WebConstants.PageSize)); }
public void Forum_ThreadController_Index_ShouldReturnBadRequestWhenIdIsNull() { // Arrange var data = new Mock <IUowData>(); var pagerFactory = new Mock <IPagerViewModelFactory>(); var viewModelFactory = new Mock <IViewModelFactory>(); ThreadController controller = new ThreadController(data.Object, pagerFactory.Object, viewModelFactory.Object); // Act HttpStatusCodeResult result = controller.Index(null) as HttpStatusCodeResult; // Assert Assert.AreEqual(400, result.StatusCode); }
public void Forum_ThreadController_Index_ShouldReturnHttpNotFoundIfThreadNull() { // Arrange var data = new Mock <IUowData>(); var pagerFactory = new Mock <IPagerViewModelFactory>(); var viewModelFactory = new Mock <IViewModelFactory>(); data.Setup(d => d.Threads.All()).Returns(new List <Thread>().AsQueryable()); Mapper.Initialize(cfg => cfg.CreateMap <Thread, ThreadViewModel>()); var controller = new ThreadController(data.Object, pagerFactory.Object, viewModelFactory.Object); // Act HttpNotFoundResult result = controller.Index(1) as HttpNotFoundResult; // Assert Assert.AreEqual(404, result.StatusCode); }
//[Test] public void ThreadController_Index_ShouldReturnAnswersEqulToPageSizeAndOrederedByPublishedProperyAtPage2() { // Arrange var data = new Mock <IUowData>(); var pagerFactory = new Mock <IPagerViewModelFactory>(); var viewModelFactory = new Mock <IViewModelFactory>(); data.Setup(d => d.Threads.All()).Returns(TestThread().AsQueryable()); data.Setup(d => d.Answers.All()).Returns(AnswersCollection().AsQueryable); var controller = new ThreadController(data.Object, pagerFactory.Object, viewModelFactory.Object); var expected = new List <Answer>() { new Answer() { Id = 1, IsVisible = true, Published = new DateTime(2017, 01, 04), ThreadId = 1, Content = string.Empty, Comments = new List <Comment>() { new Comment() { Id = 2, IsVisible = false } } }, new Answer() { Id = 5, IsVisible = true, Published = new DateTime(2017, 01, 05), ThreadId = 1, Content = string.Empty }, new Answer() { Id = 6, IsVisible = true, Published = new DateTime(2017, 01, 06), ThreadId = 1, Content = string.Empty } }; // Act var result = controller.Index(1, 2) as ViewResult; ForumThreadViewModel resultModel = result.Model as ForumThreadViewModel; // Assert CollectionAssert.AreEqual(expected, resultModel.Answers, new AnswerComparer()); }
public void Forum_ThreadController_Index_ShouldReturnCorrectPageViewModelPropertyPageSize(int pageSize) { // Arrange var data = new Mock <IUowData>(); var pagerFactory = new Mock <IPagerViewModelFactory>(); var pagerViewModel = new Mock <IPagerViewModel>(); var viewModelFactory = new Mock <IViewModelFactory>(); var forumThreadViewModel = new Mock <IForumThreadViewModel>(); data.Setup(d => d.Threads.All()).Returns(TestThread().AsQueryable()); data.Setup(d => d.Answers.All()).Returns(AnswersCollection().AsQueryable); pagerViewModel.Setup(p => p.PageSize).Returns(pageSize); pagerFactory.Setup(p => p.CreatePagerViewModel(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>())).Returns(pagerViewModel.Object); forumThreadViewModel.Setup(f => f.PagerViewModel).Returns(pagerViewModel.Object); forumThreadViewModel.Setup(t => t.Thread).Returns(new ThreadViewModel() { Id = 1 }); viewModelFactory.Setup(v => v.CreateForumThreadViewModel(It.IsAny <ThreadViewModel>(), It.IsAny <IEnumerable <AnswerViewModel> >(), It.IsAny <IPagerViewModel>())).Returns(forumThreadViewModel.Object); Mapper.Initialize(cfg => { cfg.CreateMap <Thread, ThreadViewModel>(); cfg.CreateMap <Answer, AnswerViewModel>(); cfg.CreateMap <Comment, CommentViewModel>(); }); var controller = new ThreadController(data.Object, pagerFactory.Object, viewModelFactory.Object); // Act var result = controller.Index(1) as ViewResult; var resultModel = result.Model as IForumThreadViewModel; // Assert Assert.AreEqual(pageSize, resultModel.PagerViewModel.PageSize); }