public void ThreadEditPresenter_EditThreadShouldSetRightSection() { var view = new Mock <IThreadEditView>(); view.SetupAllProperties(); var forumData = new Mock <IForumData>(); var threadsRepository = new Mock <IThreadsRepository>(); var thread = new Thread() { Id = 1, IsVisible = true }; forumData.Setup(f => f.ThreadsRepository).Returns(threadsRepository.Object); forumData.Setup(f => f.ThreadsRepository.GetThreadById(It.IsAny <int>())).Returns(thread); forumData.Setup(f => f.SectionsRepository.GetSectionByName(It.IsAny <string>())).Returns(new Section() { Name = "Test" }); var presenter = new ThreadEditPresenter(view.Object, forumData.Object); var testContent = "TestContent Should be at least 50 characters long!!"; view.Raise(v => v.EditThread += null, new ThreadEditEventArgs("TestTitle", testContent, "TestSection", 1)); forumData.Verify(r => r.ThreadsRepository.UpdateThread(It.Is <Thread>(t => t.Section.Name == "Test")), Times.Once); }
public void ThreadEditPresenter_GetThreadShouldGetRighThread() { var view = new Mock <IThreadEditView>(); view.SetupAllProperties(); var forumData = new Mock <IForumData>(); var presenter = new ThreadEditPresenter(view.Object, forumData.Object); var thread = new Thread() { Id = 1, IsVisible = true }; var answer1 = new Answer() { Id = 1, IsVisible = true }; var answer2 = new Answer() { Id = 2, IsVisible = true }; var comment = new Comment() { Id = 1, IsVisible = true }; answer1.Comments.Add(comment); thread.Answers.Add(answer1); thread.Answers.Add(answer2); var sections = new List <Section>() { new Section() { Name = "Important", Id = 1 }, new Section() { Name = "Crazy", Id = 2 } }; forumData.Setup(t => t.ThreadsRepository.GetThreadById(It.Is <int>(x => x == 1))).Returns(thread); forumData.Setup(x => x.SectionsRepository.GetAllSections()).Returns(sections.AsQueryable); view.Raise(v => v.GetThread += null, view.Object, new GetByIdEventArgs(1)); Assert.AreEqual(thread, view.Object.Model.Thread); }
public void ThreadEditPresenter_EditThreadShouldThrowIfDbThreadFail() { var view = new Mock <IThreadEditView>(); view.SetupAllProperties(); var forumData = new Mock <IForumData>(); var threadsRepository = new Mock <IThreadsRepository>(); threadsRepository.Setup(t => t.GetThreadById(It.IsAny <int>())).Throws(new Exception()); var presenter = new ThreadEditPresenter(view.Object, forumData.Object); var testContent = "TestContent Should be at least 50 characters long!!"; Assert.Throws <HttpException>(() => view.Raise(v => v.EditThread += null, new ThreadEditEventArgs("TestTitle", testContent, "TestSection", 1))); }
public void ThreadEditPresenter_GetThreadShouldReturnRightSections() { var view = new Mock <IThreadEditView>(); view.SetupAllProperties(); var forumData = new Mock <IForumData>(); var thread = new Thread() { Id = 1, IsVisible = true }; var sections = new List <Section>() { new Section() { Name = "Important", Id = 1 }, new Section() { Name = "Crazy", Id = 2 } }; var expected = new List <string>() { "Important", "Crazy" }; forumData.Setup(t => t.ThreadsRepository.GetThreadById(It.Is <int>(x => x == 1))).Returns(thread); forumData.Setup(x => x.SectionsRepository.GetAllSections()).Returns(sections.AsQueryable); var presenter = new ThreadEditPresenter(view.Object, forumData.Object); view.Raise(v => v.GetThread += null, view.Object, new GetByIdEventArgs(1)); CollectionAssert.AreEqual(expected, view.Object.Model.Sections); }
public void ThreadEditPresenter_EditThreadShouldReturnMessageWhenContentLengthNotInRange(string testContent) { var view = new Mock <IThreadEditView>(); view.SetupAllProperties(); var forumData = new Mock <IForumData>(); var threadsRepository = new Mock <IThreadsRepository>(); var thread = new Thread() { Id = 1, IsVisible = true }; forumData.Setup(f => f.ThreadsRepository).Returns(threadsRepository.Object); forumData.Setup(f => f.ThreadsRepository.GetThreadById(It.IsAny <int>())).Returns(thread); var presenter = new ThreadEditPresenter(view.Object, forumData.Object); view.Raise(v => v.EditThread += null, new ThreadEditEventArgs("TestTitle", testContent, "TestSection", 1)); StringAssert.Contains("Content must be between", view.Object.Model.Error); }
public void ThreadEditPresenter_EditThreadShouldThrowIfUpdateThreadFail() { var view = new Mock <IThreadEditView>(); view.SetupAllProperties(); var forumData = new Mock <IForumData>(); var threadsRepository = new Mock <IThreadsRepository>(); var thread = new Thread() { Id = 1, IsVisible = true }; forumData.Setup(f => f.ThreadsRepository).Returns(threadsRepository.Object); forumData.Setup(f => f.ThreadsRepository.GetThreadById(It.IsAny <int>())).Returns(thread); forumData.Setup(f => f.SectionsRepository.GetSectionByName(It.IsAny <string>())).Returns(new Section()); forumData.Setup(t => t.ThreadsRepository.UpdateThread(It.IsAny <Thread>())).Throws(new Exception()); var presenter = new ThreadEditPresenter(view.Object, forumData.Object); var testContent = "TestContent Should be at least 50 characters long!!"; Assert.Throws <HttpException>(() => view.Raise(v => v.EditThread += null, new ThreadEditEventArgs("TestTitle", testContent, "TestSection", 1))); }