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); }
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"); }