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));
            }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 5
0
 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>();
 }
Exemplo n.º 6
0
        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"));
            }
Exemplo n.º 10
0
        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;
        }