public void Dogs_Sorted_Correctly_Retrieves_SearchViewModel_From_Session_And_Adds_SortBy_And_Resets_PageNumber_To_One() { const string sortBy = "Date(CreatedOn)"; var pageableResults = new PageableResults<Dog>() {Data = _dogs}; var searchRepository = MockRepository.GenerateMock<ISearchAPIFacade>(); searchRepository.Stub(x => x.GetDogsByBreed( _pageNumber, 25, _selectedBreed, sortBy)).Return(pageableResults); var session = SessionStateHelper.FakeHttpContext("http://localhost/test?sortBy=" + sortBy); session["SearchViewModel"] = _searchViewModel; var httpRequestWrapper = MockRepository.GenerateMock<ICustomHttpRequestWrapper>(); httpRequestWrapper.Stub(x => x.GetQueryStringValueByKey(QuerystringKeys.SortBy)).Return(sortBy); var searchController = new SearchController(searchRepository, session, httpRequestWrapper, _configMgr); // act searchController.DogsSorted(); // assert var searchViewModelFromSession = (SearchViewModel) session["searchViewModel"]; Assert.That(searchViewModelFromSession.SelectedBreed, Is.EqualTo(_selectedBreed)); Assert.That(searchViewModelFromSession.PageNumber, Is.EqualTo(1)); Assert.That(searchViewModelFromSession.IsNationalSearch, Is.EqualTo(_isNationalSearch)); Assert.That(searchViewModelFromSession.SortBy, Is.EqualTo(sortBy)); }
private ActionResult RunDetailedSearch(PersonSearchViewModel item, string pageNumber, string sortBy) { var sortDirection = GetSortDirection(item, sortBy); ModelState.Clear(); var results = _Service.Search( searchValueFirstName: item.FirstName, searchValueLastName: item.LastName, searchValuePhoneNumber: item.PhoneNumber, searchValueEmailAddress: item.EmailAddress, searchValueStatus: item.Status, searchValueCreatedBy: item.CreatedBy, searchValueLastModifiedBy: item.LastModifiedBy, searchValueThingy: item.Thingy, sortBy: sortBy, sortByDirection: sortDirection); var pageableResults = new PageableResults <Person>(); pageableResults.Initialize(results); pageableResults.CurrentPage = pageNumber.SafeToInt32(0); item.Results = pageableResults; item.CurrentSortDirection = sortDirection; item.CurrentSortProperty = sortBy; return(View(item)); }
public void Dogs_Search_Correctly_Adds_SearchViewModel_To_the_Session() { const string sortBy = "price"; _searchViewModel.SortBy = sortBy; var pageableResults = new PageableResults<Dog>() {Data = _dogs}; var searchRepository = MockRepository.GenerateMock<ISearchAPIFacade>(); searchRepository.Stub(x => x.GetDogsByBreed( _pageNumber, 25, _selectedBreed, sortBy)).Return(pageableResults); var session = SessionStateHelper.FakeHttpContext("http://localhost/test?sortBy=price"); var httpRequestWrapper = MockRepository.GenerateMock<ICustomHttpRequestWrapper>(); httpRequestWrapper.Stub(x => x.GetQueryStringValueByKey(QuerystringKeys.SortBy)).Return(sortBy); var searchController = new SearchController(searchRepository, session, httpRequestWrapper, _configMgr); // act var result = (ViewResult) searchController.Dogs(_searchViewModel); var searchViewModelFromSession = (SearchViewModel) session["searchViewModel"]; // assert Assert.That(result.Model, Is.EqualTo(pageableResults)); Assert.That(searchViewModelFromSession.SelectedBreed, Is.EqualTo(_selectedBreed)); Assert.That(searchViewModelFromSession.PageNumber, Is.EqualTo(_pageNumber)); Assert.That(searchViewModelFromSession.IsNationalSearch, Is.EqualTo(_isNationalSearch)); Assert.That(searchViewModelFromSession.SortBy, Is.EqualTo(sortBy)); }
private ActionResult RunDetailedSearch(LookupSearchViewModel item, string pageNumber, string sortBy) { var sortDirection = GetSortDirection(item, sortBy); ModelState.Clear(); var results = _Service.Search( searchValueLookupType: item.LookupType, searchValueLookupKey: item.LookupKey, searchValueLookupValue: item.LookupValue, searchValueStatus: item.Status, searchValueCreatedBy: item.CreatedBy, searchValueLastModifiedBy: item.LastModifiedBy, sortBy: sortBy, sortByDirection: sortDirection); var pageableResults = new PageableResults <Lookup>(); pageableResults.Initialize(results); pageableResults.CurrentPage = pageNumber.SafeToInt32(0); item.Results = pageableResults; item.CurrentSortDirection = sortDirection; item.CurrentSortProperty = sortBy; return(View(item)); }
public SearchAPIFacade( IDataContractJsonSerializerWrapper dataContractJsonSerializerWrapper, IExceptionHelper exceptionHelper, IConfiguration configuration, IWebAPIRequestWrapper webAPIRequestWrapper, IResponseStreamHelper responseStreamHelper) { _dataContractJsonSerializerWrapper = dataContractJsonSerializerWrapper; _exceptionHelper = exceptionHelper; _configuration = configuration; _webAPIRequestWrapper = webAPIRequestWrapper; _responseStreamHelper = responseStreamHelper; _breeds = new List<Breed>(); _dogs = new PageableResults<Dog>(); }
private ActionResult RunSimpleSearch( PersonSearchViewModel item, string pageNumber, string sortBy) { if (item.SimpleSearchValue.IsNullOrWhitespace() == false) { ModelState.Clear(); string sortDirection; if (sortBy == null) { // the value didn't change because of HTTP POST sortBy = item.CurrentSortProperty; sortDirection = item.CurrentSortDirection; } else { sortDirection = GetSortDirection(item, sortBy); } var results = _Service.SimpleSearch(item.SimpleSearchValue, sortBy, sortDirection); var pageableResults = new PageableResults <Person>(); pageableResults.Initialize(results); pageableResults.CurrentPage = pageNumber.SafeToInt32(0); item.Results = pageableResults; item.CurrentSortDirection = sortDirection; item.CurrentSortProperty = sortBy; } return(View(item)); }
public void Dogs_WhenPlaceId_IsZero_and_Location_Is_EmptyString_DoNationalSearch() { var dogs = new List<Dog>() { new Dog() {AgeInMonths = 3, AgeInYears = 0, Id = 1, IsFemale = false, IsSold = false}, new Dog() {AgeInMonths = 15, AgeInYears = 1, Id = 3, IsFemale = true, IsSold = false}, }; var pageableResults = new PageableResults<Dog>() { Data = dogs }; var searchRepository = MockRepository.GenerateMock<ISearchAPIFacade>(); searchRepository.Stub(x => x.GetDogs(1, 25)).Return(pageableResults); _searchViewModel.IsNationalSearch = false; _searchViewModel.SelectedBreed = 0; _searchViewModel.PlaceId = 0; _searchViewModel.Location = string.Empty; var httpRequestWrapper = MockRepository.GenerateMock<ICustomHttpRequestWrapper>(); var searchController = new SearchController(searchRepository, SessionStateHelper.FakeHttpContext("http://localhost/example"), httpRequestWrapper, _configMgr); // act var result = (ViewResult)searchController.Dogs(_searchViewModel); // assert Assert.That(result.Model, Is.EqualTo(pageableResults)); }
public void DogSearch_NationalSearch_Return_View_With_Full_List_Of_Dogs_Found_When_NationalSearch_For_Specific_Breed() { var dogs = new List<Dog>() { new Dog() {AgeInMonths = 3, AgeInYears = 0, Id = 1, IsFemale = false, IsSold = false}, new Dog() {AgeInMonths = 15, AgeInYears = 1, Id = 3, IsFemale = true, IsSold = false}, }; var pageableResults = new PageableResults<Dog>() { Data = dogs }; var searchRepository = MockRepository.GenerateMock<ISearchAPIFacade>(); searchRepository.Stub(x => x.GetDogsByBreed(1, 25, 3, SearchSortOptions.PRICE_LOWEST)).Return(pageableResults); _searchViewModel.IsNationalSearch = true; _searchViewModel.SelectedBreed = 3; var httpRequestWrapper = MockRepository.GenerateMock<ICustomHttpRequestWrapper>(); var session = SessionStateHelper.FakeHttpContext("http://localhost/example"); var searchController = new SearchController(searchRepository, session, httpRequestWrapper, _configMgr); // act var result = (ViewResult) searchController.Dogs(_searchViewModel); var searchViewModelFromSession = (SearchViewModel) session["searchViewModel"]; // assert Assert.That(result.Model, Is.EqualTo(pageableResults)); Assert.That(searchViewModelFromSession.SelectedBreed, Is.EqualTo(3)); Assert.That(searchViewModelFromSession.PageNumber, Is.EqualTo(1)); }
public void Dogs_Sorted_Redirects_ToHome_Controller_If_Session_Is_Expired() { const string sortBy = "Date(CreatedOn)"; var pageableResults = new PageableResults<Dog>() {Data = _dogs}; var searchRepository = MockRepository.GenerateMock<ISearchAPIFacade>(); searchRepository.Stub( x => x.GetDogsByBreed(_pageNumber, 25, _selectedBreed, sortBy)).Return(pageableResults); var session = SessionStateHelper.FakeHttpContext("http://localhost/test?sortBy=" + sortBy); session["searchViewModel"] = null; var httpRequestWrapper = MockRepository.GenerateMock<ICustomHttpRequestWrapper>(); httpRequestWrapper.Stub( x => x.GetQueryStringValueByKey(QuerystringKeys.SortBy)).Return(sortBy); var searchController = new SearchController( searchRepository, session, httpRequestWrapper, _configMgr); // act var result = (RedirectToRouteResult) searchController.DogsSorted(); // assert Assert.That(result.RouteValues["Controller"].Equals("Home")); Assert.That(result.RouteValues["Action"].Equals("Index")); }
private PageableResults<Dog> GetDogsByResponse(string url) { var response = _webAPIRequestWrapper.GetResponse(url); try { using (var stream = _responseStreamHelper.GetResponseStream(response)) { var apiResponseData = DeserializeAPIResponseData(stream, typeof (PageableResults<Dog>)); if (apiResponseData != null) { _dogs = (PageableResults<Dog>) apiResponseData; } } } catch (Exception e) { _exceptionHelper.HandleException( "Response from Dogs service resulted in an error in GetDogs()", e, (typeof (SearchAPIFacade))); } finally { DisposeOfWebResponse(response); } return _dogs; }