Example #1
0
        public void Save_AfterSavingArticle_ArticleIsInRepository()
        {
            FakeNewsRepository  fakeNewsRepository = new FakeNewsRepository();
            NewsAdminController controller         = CreateNewsAdminController(fakeNewsRepository);

            string testTitle = "TestTitle";

            NewsArticle newNewsArticle = new NewsArticle();

            newNewsArticle.Id         = 0;
            newNewsArticle.Title      = testTitle;
            newNewsArticle.Content    = "TestContent";
            newNewsArticle.Category   = "TestCategory";
            newNewsArticle.PictureUrl = "TestURL";

            int previousNumberOfArticles = fakeNewsRepository.News.Count;

            RedirectToRouteResult result = controller.Save(newNewsArticle) as RedirectToRouteResult;

            NewsArticle savedArticle = fakeNewsRepository.News.Find(a => a.Title == testTitle);

            Assert.IsTrue(previousNumberOfArticles + 1 == fakeNewsRepository.News.Count);
            Assert.IsTrue(TestHelper.NewsArticlesAreSame(newNewsArticle, savedArticle));

            if (savedArticle != null)
            {
                fakeNewsRepository.News.Remove(savedArticle);
            }
        }
Example #2
0
        public void EditNews_OnRequestForEditNonExistingArticle_Redirected()
        {
            FakeNewsRepository  fakeNewsRepository = new FakeNewsRepository();
            NewsAdminController controller         = CreateNewsAdminController(fakeNewsRepository);

            object result = controller.EditNews(int.MaxValue);

            Assert.IsTrue(result is HttpNotFoundResult);
        }
Example #3
0
        public void NewNews_OnRequest_ReturnsCorrectView()
        {
            FakeNewsRepository  fakeNewsRepository = new FakeNewsRepository();
            NewsAdminController controller         = CreateNewsAdminController(fakeNewsRepository);

            ViewResult result = controller.NewNews();

            Assert.IsNotNull(result);
            Assert.IsTrue(result.ViewName == "NewsForm");
        }
Example #4
0
        public void EditNews_OnRequestForEdit_HaveCorrectArticleForEdit()
        {
            FakeNewsRepository  fakeNewsRepository = new FakeNewsRepository();
            NewsAdminController controller         = CreateNewsAdminController(fakeNewsRepository);

            ViewResult  result      = controller.EditNews(2) as ViewResult;
            NewsArticle editArticle = ((NewsFormViewModel)result.Model).NewsArticle;

            Assert.IsTrue(TestHelper.NewsArticlesAreSame(editArticle, fakeNewsRepository.News[1]));
        }
Example #5
0
        public void SingleNews_OnRequest_HaveCorrectDataForNews()
        {
            FakeNewsRepository fakeNewsRepository = new FakeNewsRepository();
            HomeController     controller         = new HomeController(fakeNewsRepository);

            ViewResult result = controller.SingleNews(1);

            var newsOnPage = ((NewsArticle)result.Model);

            Assert.IsTrue(TestHelper.NewsArticlesAreSame(newsOnPage, fakeNewsRepository.News[0]));
        }
Example #6
0
        public void IndexAdmin_OnRequest_ReturnsCorrectView()
        {
            FakeNewsRepository  fakeNewsRepository = new FakeNewsRepository();
            NewsAdminController controller         = CreateNewsAdminController(fakeNewsRepository);
            SearchViewModel     viewModel          = new SearchViewModel();

            ViewResult result = controller.IndexAdmin(viewModel);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.ViewName == "IndexAdmin");
        }
Example #7
0
        public void Setup()
        {
            _unitOfWorkFactory = new FakeUnitOfWorkFactory();
            FakeNewsRepository     newsRepository     = new FakeNewsRepository(_unitOfWorkFactory);
            FakeNewsTextRepository newsTextRepository = new FakeNewsTextRepository(_unitOfWorkFactory);

            _authenticationData = new FakeAuthenticationData();
            _authenticationData.IsAuthenticated = true;
            _authenticationData.IsAdministrator = false;
            _newsLogic = new NewsLogic(newsRepository, newsTextRepository, _unitOfWorkFactory, _authenticationData);
            CreateTestData();
        }
Example #8
0
        public void Save_AfterSavingArticle_RedirectsToTableView()
        {
            FakeNewsRepository  fakeNewsRepository = new FakeNewsRepository();
            NewsAdminController controller         = CreateNewsAdminController(fakeNewsRepository);

            NewsArticle existingArticle = fakeNewsRepository.News[0];

            RedirectToRouteResult result = controller.Save(existingArticle) as RedirectToRouteResult;

            Assert.IsNotNull(result);
            Assert.IsTrue(result.RouteValues["action"].ToString() == "IndexAdmin");
            Assert.IsTrue(result.RouteValues["controller"].ToString() == "NewsAdmin");
        }
Example #9
0
        public void Index_WhenDisplayed_HaveAllNewsCategories()
        {
            FakeNewsRepository fakeNewsRepository = new FakeNewsRepository();
            HomeController     controller         = new HomeController(fakeNewsRepository);

            ViewResult result = controller.Index();
            var        newsCategoriesInView = ((CommonViewModel)result.Model).NewsCategories.ToList();

            List <int> expectedCategories = new List <int> {
                0, 1, 2, 3, 4
            };

            Assert.IsTrue(TestHelper.AreDataAsExpected <NewsCategory>(newsCategoriesInView,
                                                                      fakeNewsRepository.Categories,
                                                                      expectedCategories,
                                                                      TestHelper.NewsCategoriesAreSame));
        }
Example #10
0
        public void Index_WhenDisplayed_HaveThreeLatestNewsForEachCategory()
        {
            FakeNewsRepository fakeNewsRepository = new FakeNewsRepository();
            HomeController     controller         = new HomeController(fakeNewsRepository);

            ViewResult result             = controller.Index();
            var        newsArticlesInView = ((CommonViewModel)result.Model).NewsArticles.ToList();

            List <int> expectedArticles = new List <int> {
                2, 1, 0, 4, 5, 6, 3
            };

            Assert.IsTrue(TestHelper.AreDataAsExpected <NewsArticle>(newsArticlesInView,
                                                                     fakeNewsRepository.News,
                                                                     expectedArticles,
                                                                     TestHelper.NewsArticlesAreSame));
        }
Example #11
0
        public void NewsInCategory_AfterChoosingNewsCategory_HaveAllNewsForChosenCategory()
        {
            FakeNewsRepository fakeNewsRepository = new FakeNewsRepository();
            HomeController     controller         = new HomeController(fakeNewsRepository);

            ViewResult         result    = controller.NewsInCategory(1);
            List <NewsArticle> foundNews = ((NewsListViewModel)result.Model).NewsArticles;

            List <int> expectedArticles = new List <int> {
                2, 1, 0
            };

            Assert.IsTrue(TestHelper.AreDataAsExpected <NewsArticle>(foundNews,
                                                                     fakeNewsRepository.News,
                                                                     expectedArticles,
                                                                     TestHelper.NewsArticlesAreSame));
        }
Example #12
0
        public void NewsList_AfterSearch_HaveCorrectDataForNews()
        {
            FakeNewsRepository fakeNewsRepository = new FakeNewsRepository();
            HomeController     controller         = new HomeController(fakeNewsRepository);

            SearchViewModel viewModel = new SearchViewModel
            {
                SearchTerm = "Climate change",
            };

            ViewResult result = controller.NewsList(viewModel);

            List <NewsArticle> foundNews = ((NewsListViewModel)result.Model).NewsArticles;

            Assert.IsTrue(foundNews.Count == 1);
            Assert.IsTrue(TestHelper.NewsArticlesAreSame(foundNews[0], fakeNewsRepository.News[3]));
        }
Example #13
0
        public void Save_AfterUpdatingArticle_ChangesAreInRepository()
        {
            FakeNewsRepository  fakeNewsRepository = new FakeNewsRepository();
            NewsAdminController controller         = CreateNewsAdminController(fakeNewsRepository);

            NewsArticle existingArticle = fakeNewsRepository.News[0];
            string      oldTitle        = existingArticle.Title;
            string      newTitle        = "TestTitle";

            existingArticle.Title = newTitle;

            RedirectToRouteResult result = controller.Save(existingArticle) as RedirectToRouteResult;

            NewsArticle savedArticle = fakeNewsRepository.News.Find(a => a.Id == existingArticle.Id);

            Assert.IsTrue(savedArticle.Title == newTitle);
        }
Example #14
0
        public void IndexAdmin_OnRequest_ReturnAllNewsForUser()
        {
            FakeNewsRepository  fakeNewsRepository = new FakeNewsRepository();
            NewsAdminController controller         = CreateNewsAdminController(fakeNewsRepository);
            SearchViewModel     viewModel          = new SearchViewModel();

            ViewResult         result         = controller.IndexAdmin(viewModel);
            List <NewsArticle> articlesByUser = ((IEnumerable <NewsArticle>)result.Model).ToList();

            List <int> expectedArticlesForUser = new List <int> {
                0, 1, 2
            };

            Assert.IsTrue(TestHelper.AreDataAsExpected(articlesByUser,
                                                       fakeNewsRepository.News,
                                                       expectedArticlesForUser,
                                                       TestHelper.NewsArticlesAreSame));
        }
Example #15
0
        public void NewNews_OnRequest_HaveEmptyArticleAndAllCategories()
        {
            FakeNewsRepository  fakeNewsRepository = new FakeNewsRepository();
            NewsAdminController controller         = CreateNewsAdminController(fakeNewsRepository);

            ViewResult result = controller.NewNews();

            NewsFormViewModel viewModel = (NewsFormViewModel)result.Model;

            List <int> expectedCategories = new List <int> {
                0, 1, 2, 3, 4
            };

            Assert.IsTrue(TestHelper.NewsArticlesAreSame(viewModel.NewsArticle, new NewsArticle()));
            Assert.IsTrue(TestHelper.AreDataAsExpected <NewsCategory>(viewModel.NewsCategories.ToList(),
                                                                      fakeNewsRepository.Categories,
                                                                      expectedCategories,
                                                                      TestHelper.NewsCategoriesAreSame));
        }
Example #16
0
        private HomeController CreateTestHomeController()
        {
            FakeNewsRepository fakeNewsRepository = new FakeNewsRepository();

            return(new HomeController(fakeNewsRepository));
        }