Example #1
0
        public void PersonController_Search_RunSimpleSearch_WithSort()
        {
            // arrange
            PersonServiceInstance.SimpleSearchReturnValue =
                PersonTestUtility.CreateModels(false, 100);

            var model = UnitTestUtility.GetModel <PersonSearchViewModel>(
                SystemUnderTest.Search());

            model.IsSimpleSearch    = true;
            model.SimpleSearchValue = "searchval";

            // act & assert

            // first time sort by null to simulate the first search on the page
            var actual = UnitTestUtility.GetModel <PersonSearchViewModel>(
                SystemUnderTest.Search(model, null, null));

            SearchAndSortTestUtility.AssertSearchResultsAndSortDirection(actual, null, SearchConstants.SortDirectionAscending);

            // sort by Person name to simulate sorting the search
            string sortBy = nameof(Person.Id);

            actual = UnitTestUtility.GetModel <PersonSearchViewModel>(
                SystemUnderTest.Search(model, null, sortBy));

            SearchAndSortTestUtility.AssertSearchResultsAndSortDirection(actual, sortBy, SearchConstants.SortDirectionAscending);

            // sort by Person name again to simulate flipping the sort direction
            sortBy = nameof(Person.Id);
            actual = UnitTestUtility.GetModel <PersonSearchViewModel>(
                SystemUnderTest.Search(model, null, sortBy));

            SearchAndSortTestUtility.AssertSearchResultsAndSortDirection(actual, sortBy, SearchConstants.SortDirectionDescending);
        }
Example #2
0
        public void PersonController_Search_RunSimpleSearch_WithSort_ChangePages()
        {
            // arrange
            PersonServiceInstance.SimpleSearchReturnValue =
                PersonTestUtility.CreateModels(false, 100);

            var model = UnitTestUtility.GetModel <PersonSearchViewModel>(
                SystemUnderTest.Search());

            model.IsSimpleSearch    = true;
            model.SimpleSearchValue = "searchval";

            // act & assert

            // sort by Person name to simulate sorting the search
            string sortBy = nameof(Person.Id);
            var    actual = UnitTestUtility.GetModel <PersonSearchViewModel>(
                SystemUnderTest.Search(model, null, sortBy));

            SearchAndSortTestUtility.AssertSearchResultsAndSortDirection(actual, sortBy, SearchConstants.SortDirectionAscending);

            Assert.IsTrue(actual.Results.PageCount > 2, "PageCount should be greater than 2 for this test");

            var page1Values = new List <Person>(actual.Results.PageValues);

            // change to page 2
            actual = UnitTestUtility.GetModel <PersonSearchViewModel>(
                SystemUnderTest.Search(model, "2", null));
            SearchAndSortTestUtility.AssertSearchResultsAndSortDirection(actual, sortBy, SearchConstants.SortDirectionAscending);
            Assert.AreEqual <int>(2, actual.Results.CurrentPage, "Results page number was wrong.");
            var page2Values = new List <Person>(actual.Results.PageValues);

            CollectionAssert.AreNotEquivalent(page2Values, page1Values, "Page values didn't change");

            // change to page 3
            actual = UnitTestUtility.GetModel <PersonSearchViewModel>(
                SystemUnderTest.Search(model, "3", null));
            SearchAndSortTestUtility.AssertSearchResultsAndSortDirection(actual, sortBy, SearchConstants.SortDirectionAscending);
            Assert.AreEqual <int>(3, actual.Results.CurrentPage, "Results page number was wrong.");
            var page3Values = new List <Person>(actual.Results.PageValues);

            CollectionAssert.AreNotEquivalent(page3Values, page2Values, "Page values didn't change");
        }