Index() 개인적인 메소드

private Index ( string displayName, string tag ) : System.Web.Mvc.ActionResult
displayName string
tag string
리턴 System.Web.Mvc.ActionResult
        public void GivenNoAuthenticatedUser_Index_ReturnsFavouriteTagsViewModelWithNoTags()
        {
            IndexesToExecute = new List<Type> {typeof (Questions_Search), typeof (RecentPopularTags)};

            // Arrange.
            // Note: we're faking that no user has been authenticated.
            var homeController = new HomeController(DocumentStore);
            ControllerUtilities.SetUpControllerContext(homeController);

            // Act.
            var result = homeController.Index(null, null) as ViewResult;

            // Assert.
            Assert.NotNull(result);

            var model = result.Model as IndexViewModel;
            Assert.NotNull(model);

            UserTagListViewModel userFavoriteTagListViewModel = model.UserFavoriteTagListViewModel;
            Assert.NotNull(userFavoriteTagListViewModel);

            Assert.Equal("Favorite Tags", userFavoriteTagListViewModel.Header);
            Assert.Equal("interesting-tags", userFavoriteTagListViewModel.DivId1);
            Assert.Equal("interestingtags", userFavoriteTagListViewModel.DivId2);
            Assert.Null(userFavoriteTagListViewModel.Tags);
        }
예제 #2
0
        public void GivenNoAuthenticatedUser_Index_ReturnsFavouriteTagsViewModelWithNoTags()
        {
            using (IDocumentSession documentSession = DocumentStore.OpenSession())
            {
                // Arrange.
                // Note: we're faking that no user has been authenticated.
                var homeController = new HomeController(documentSession);
                ControllerUtilities.SetUpControllerContext(homeController);

                // Act.
                var result = homeController.Index(null, null) as ViewResult;

                // Assert.
                Assert.NotNull(result);

                var model = result.Model as IndexViewModel;
                Assert.NotNull(model);

                UserTagListViewModel userFavoriteTagListViewModel = model.UserFavoriteTagListViewModel;
                Assert.NotNull(userFavoriteTagListViewModel);

                Assert.Equal("Favorite Tags", userFavoriteTagListViewModel.Header);
                Assert.Equal("interesting-tags", userFavoriteTagListViewModel.DivId1);
                Assert.Equal("interestingtags", userFavoriteTagListViewModel.DivId2);
                Assert.Null(userFavoriteTagListViewModel.Tags);
            }
        }
예제 #3
0
        public void GivenAnAuthenticatedUserWithSomeFavouriteTags_Index_ReturnsAFavouriteTagsViewModelWithContent()
        {
            IndexesToExecute = new List<Type> {typeof (Questions_Search), typeof (RecentPopularTags)};

            // Arrange.
            // Note: we're faking that a user has authenticated.
            var homeController = new HomeController(DocumentSession);
            ControllerUtilities.SetUpControllerContext(homeController, displayName: "Pure.Krome");

            // Act.
            var result = homeController.Index(null, null) as ViewResult;

            // Assert.
            Assert.NotNull(result);

            var model = result.Model as IndexViewModel;
            Assert.NotNull(model);

            UserTagListViewModel userFavoriteTagListViewModel = model.UserFavoriteTagListViewModel;
            Assert.NotNull(userFavoriteTagListViewModel);

            Assert.Equal("Favorite Tags", userFavoriteTagListViewModel.Header);
            Assert.Equal("interesting-tags", userFavoriteTagListViewModel.DivId1);
            Assert.Equal("interestingtags", userFavoriteTagListViewModel.DivId2);
            Assert.NotNull(userFavoriteTagListViewModel.Tags);
            Assert.Equal(3, userFavoriteTagListViewModel.Tags.Count);
        }
예제 #4
0
        public void GivenSomeQuestions_Index_ReturnsTheMostRecentQuestions()
        {
            using (IDocumentSession documentSession = DocumentStore.OpenSession())
            {
                // Arrange.
                var homeController = new HomeController(documentSession);
                ControllerUtilities.SetUpControllerContext(homeController);

                // Act.
                var result = homeController.Index(null, null) as ViewResult;

                // Assert.
                Assert.NotNull(result);

                var model = result.Model as IndexViewModel;
                Assert.NotNull(model);
                Assert.NotNull(model.QuestionListViewModel);
                Assert.NotNull(model.QuestionListViewModel.Questions);
                Assert.Equal(20, model.QuestionListViewModel.Questions.Count);

                // Make sure all the items are ordered correctly.
                DateTime? previousQuestion = null;
                foreach (QuestionWithDisplayName question in model.QuestionListViewModel.Questions)
                {
                    if (previousQuestion.HasValue)
                    {
                        Assert.True(previousQuestion.Value >= question.CreatedOn);
                    }

                    previousQuestion = question.CreatedOn;
                }

                // Now lets test that our fixed questions come back correctly.
                List<Question> fixedQuestions = FakeQuestions.CreateFakeQuestions(null, 5).ToList();
                for (int i = 0; i < 5; i++)
                {
                    // Can Assert anything except
                    // * Id (these new fakes haven't been Stored)
                    // * CreatedByUserId - this is randomized when fakes are created.
                    // * CreatedOn - these fakes were made AFTER the Stored data.
                    // ASSUMPTION: the first 5 fixed questions are the first 5 documents in the Document Store.
                    QuestionWithDisplayName question = model.QuestionListViewModel.Questions[i];
                    Assert.Equal(fixedQuestions[i].Subject, question.Subject);
                    Assert.Equal(fixedQuestions[i].Content, question.Content);
                    Assert.Equal(fixedQuestions[i].NumberOfViews, question.NumberOfViews);
                    Assert.Equal(fixedQuestions[i].Vote.DownVoteCount, question.Vote.DownVoteCount);
                    Assert.Equal(fixedQuestions[i].Vote.FavoriteCount, question.Vote.FavoriteCount);
                    Assert.Equal(fixedQuestions[i].Vote.UpVoteCount, question.Vote.UpVoteCount);
                }
            }
        }
예제 #5
0
        public void GivenSomeQuestions_Index_ReturnsTheMostRecentPopularTagsInTheLast30Days()
        {
            using (IDocumentSession documentSession = DocumentStore.OpenSession())
            {
                // Arrange.
                var homeController = new HomeController(documentSession);
                ControllerUtilities.SetUpControllerContext(homeController);

                // Act.
                var result = homeController.Index(null, null) as ViewResult;

                // Assert.
                Assert.NotNull(result);

                var model = result.Model as IndexViewModel;
                Assert.NotNull(model);

                Assert.NotNull(model.RecentPopularTags);
                Assert.True(model.RecentPopularTags.Count > 0);

                // Make sure all the items are ordered correctly.
                int? previousCount = null;
                foreach (var keyValuePair in model.RecentPopularTags)
                {
                    if (previousCount.HasValue)
                    {
                        Assert.True(previousCount.Value >= keyValuePair.Value);
                    }

                    previousCount = keyValuePair.Value;
                }

                // ToDo: test fixed tags.
            }
        }
        public void GivenSomeQuestions_Index_ReturnsTheMostRecentPopularTagsInTheLast30Days()
        {
            IndexesToExecute = new List<Type> {typeof (Questions_Search), typeof (RecentPopularTags)};

            // Arrange.
            var homeController = new HomeController(DocumentStore);
            ControllerUtilities.SetUpControllerContext(homeController);

            // Act.
            var result = homeController.Index(null, null) as ViewResult;

            // Assert.
            Assert.NotNull(result);

            var model = result.Model as IndexViewModel;
            Assert.NotNull(model);

            Assert.NotNull(model.RecentPopularTags);
            Assert.True(model.RecentPopularTags.Count > 0);

            // Make sure all the items are ordered correctly.
            int? previousCount = null;
            foreach (var keyValuePair in model.RecentPopularTags)
            {
                if (previousCount.HasValue)
                {
                    Assert.True(previousCount.Value >= keyValuePair.Value);
                }

                previousCount = keyValuePair.Value;
            }
        }
        public void GivenSomeQuestionsAndATag_Index_ReturnsAViewResult()
        {
            IndexesToExecute = new List<Type> {typeof (Questions_Search), typeof (RecentPopularTags)};

            // Arrange.
            const string tag = "ravendb";
            var homeController = new HomeController(DocumentStore);
            ControllerUtilities.SetUpControllerContext(homeController);

            // Act.
            var result = homeController.Index(null, tag) as ViewResult;

            // Assert.
            Assert.NotNull(result);

            var model = result.Model as IndexViewModel;
            Assert.NotNull(model);
            Assert.NotNull(model.QuestionListViewModel);
            Assert.NotNull(model.QuestionListViewModel.Questions);

            // Make sure each question is tagged with the defined tag-value.
            Assert.True(model.QuestionListViewModel.Questions.All(x => x.Tags.Contains(tag)));
        }