Ejemplo n.º 1
0
        public async Task SearchActionNotRedirectsToSchoolViewIfValidUrnProvidedInAddSchoolPage()
        {
            var matches = new List <SchoolSearchResult>();

            matches.Add(new SchoolSearchResult()
            {
                URN = "654321"
            });
            matches.Add(new SchoolSearchResult()
            {
                URN = "123456"
            });
            var edubaseSearchResponse = new SearchResultsModel <SchoolSearchResult>(1, null, matches, 50, 0);
            var task = Task.Run(() =>
            {
                return(edubaseSearchResponse);
            });

            _mockSchoolSearchService.Setup(m => m.SearchSchoolByNameAsync("Test", 50, 50, It.IsAny <string>(), It.IsAny <NameValueCollection>()))
            .Returns((string name, int skip, int take, string orderby, NameValueCollection queryParams) => task);

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockLocationSearchService.Object, _mockFilterBuilder.Object, _valService,
                                                        _mockContextDataService.Object, _mockSchoolSearchService.Object, _mockCookieManager.Object);

            controller.ControllerContext = new ControllerContext(_rc, controller);

            var result = await controller.Search("Test (ABC 3DX)", SearchTypes.SEARCH_BY_NAME_ID, "123456", null, null, null, null, false, null, 2, null, "AddSchool");

            Assert.IsTrue(result is ViewResult);
            Assert.AreEqual("SearchResults", (result as ViewResult).ViewName);
        }
Ejemplo n.º 2
0
        public async Task SearchActionReturnsSuggestionsViewIfSearchByLAName()
        {
            dynamic laSearchResponse = new List <dynamic>()
            {
                new{
                    id         = "840",
                    LANAME     = "County Durham",
                    REGION     = "1",
                    REGIONNAME = "North East A"
                },
                new{
                    id         = "841",
                    LANAME     = "Darlington",
                    REGION     = "1",
                    REGIONNAME = "North East A"
                }
            };

            _mockLaService.Setup(m => m.GetLocalAuthorities()).Returns(() => laSearchResponse);

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockFilterBuilder.Object, _valService, _mockEdubaseDataService.Object, _mockEdubaseSearchService.Object, _mockTrustSearchService.Object);

            controller.ControllerContext = new ControllerContext(_rc, controller);

            var result = await controller.Search(null, "", SearchTypes.SEARCH_BY_LA_CODE_NAME, null, null, null, "Test", null, null, 0);

            Assert.IsNotNull(result);
            Assert.AreEqual("Search", (result as RedirectToRouteResult).RouteValues["Action"]);
            Assert.AreEqual("Test", (result as RedirectToRouteResult).RouteValues["Name"]);
        }
Ejemplo n.º 3
0
        public async Task SearchActionRedirectsToSchoolViewIfLaEstabWithSlashIsUsedAsId()
        {
            var testResult = new List <EdubaseDataObject>()
            {
                new EdubaseDataObject()
                {
                    URN = 1234567
                }
            };

            Task <List <EdubaseDataObject> > dataObjectTask = Task.Run(() =>
            {
                return(testResult);
            });

            _mockContextDataService.Setup(m => m.GetSchoolDataObjectByLaEstabAsync("1234567", false)).Returns((string urn, bool openOnly) => dataObjectTask);

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockLocationSearchService.Object, _mockFilterBuilder.Object, _valService,
                                                        _mockContextDataService.Object, _mockSchoolSearchService.Object, _mockCookieManager.Object);

            controller.ControllerContext = new ControllerContext(_rc, controller);

            var result = await controller.Search("123/4567", SearchTypes.SEARCH_BY_NAME_ID, null, null, null, null, null, false, null, 0);

            Assert.IsNotNull(result);
            Assert.AreEqual("School", (result as RedirectToRouteResult).RouteValues["controller"]);
            Assert.AreEqual("Index", (result as RedirectToRouteResult).RouteValues["action"]);
            Assert.AreEqual("1234567", (result as RedirectToRouteResult).RouteValues["urn"].ToString());
        }
Ejemplo n.º 4
0
        public async Task SearchActionReturnsViewWithErrorIfNameIsUsedAsIdAndNoResultsFound()
        {
            var schoolTask = Task.Run(() =>
            {
                var facets  = new Dictionary <string, FacetResultModel[]>();
                var matches = new List <SchoolSearchResult>();
                var results = new SearchResultsModel <SchoolSearchResult>(0, facets, matches, 0, 0);
                return(results);
            });

            _mockSchoolSearchService.Setup(m => m.SearchSchoolByNameAsync("abc", 0, SearchDefaults.RESULTS_PER_PAGE, null, null))
            .Returns((string laEstab, int skip, int take, string @orderby, NameValueCollection queryParams) => schoolTask);

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockLocationSearchService.Object, _mockFilterBuilder.Object,
                                                        _valService, _mockContextDataService.Object, _mockSchoolSearchService.Object, _mockCookieManager.Object);

            controller.ControllerContext = new ControllerContext(_rc, controller);

            var response = await controller.Search("abc", SearchTypes.SEARCH_BY_NAME_ID, null, null, null, null, null, false, null, 1);

            Assert.IsNotNull(response);
            Assert.IsNotNull((response as ViewResult).Model);
            Assert.IsTrue(((response as ViewResult).Model as SearchViewModel).HasError());
            Assert.AreEqual(SearchErrorMessages.NO_SCHOOL_NAME_RESULTS, ((response as ViewResult).Model as SearchViewModel).ErrorMessage);
        }
Ejemplo n.º 5
0
        public async Task SearchActionCallsServiceWithPagingParams()
        {
            var testDictionary = new Dictionary <string, object>();

            testDictionary.Add("URN", "654321");
            dynamic edubaseSearchResponse = new QueryResultsModel(1, null, new List <IDictionary <string, object> >()
            {
                testDictionary
            }, 50, 0);
            Task <dynamic> task = Task.Run(() =>
            {
                return(edubaseSearchResponse);
            });

            _mockEdubaseSearchService.Setup(m => m.SearchSchoolByName("Test", 50, 50, string.Empty, null))
            .Returns((string name, int skip, int take, string orderby, NameValueCollection queryParams) => task);

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockFilterBuilder.Object, _valService, _mockEdubaseDataService.Object, _mockEdubaseSearchService.Object, _mockTrustSearchService.Object);

            controller.ControllerContext = new ControllerContext(_rc, controller);

            var result = await controller.Search("Test", "", SearchTypes.SEARCH_BY_NAME_ID, null, null, null, null, null, "", 2);

            _mockEdubaseSearchService.Verify(req => req.SearchSchoolByName("Test", 50, 50, "", null), Times.Once());
        }
Ejemplo n.º 6
0
        public void UpdateActionReturnsCookieWhenAddToComparisonList()
        {
            var request  = new Mock <HttpRequestBase>(MockBehavior.Strict);
            var response = new Mock <HttpResponseBase>(MockBehavior.Strict);
            var context  = new Mock <HttpContextBase>(MockBehavior.Strict);

            context.SetupGet(x => x.Request).Returns(request.Object);
            context.SetupGet(x => x.Response).Returns(response.Object);
            var requestCookies = new HttpCookieCollection();

            context.SetupGet(x => x.Request.Cookies).Returns(requestCookies);
            var responseCookies = new HttpCookieCollection();

            context.SetupGet(x => x.Response.Cookies).Returns(responseCookies);
            var rc = new RequestContext(context.Object, new RouteData());

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockFilterBuilder.Object, _valService, _mockEdubaseDataService.Object, _mockEdubaseSearchService.Object, _mockTrustSearchService.Object);

            controller.ControllerContext = new ControllerContext(rc, controller);

            dynamic testResult = new Microsoft.Azure.Documents.Document();

            testResult.URN = "123456";

            _mockEdubaseDataService.Setup(m => m.GetSchoolByUrn("123456")).Returns((string urn) => testResult);

            var result = controller.UpdateBenchmarkBasket(123456, CompareActions.ADD_TO_COMPARISON_LIST);

            Assert.IsNotNull(result);
            Assert.AreEqual(1, controller.Response.Cookies.Count);
            var cookie = JsonConvert.DeserializeObject <ComparisonListModel>(controller.Response.Cookies[CookieNames.COMPARISON_LIST].Value);

            Assert.AreEqual(1, cookie.BenchmarkSchools.Count);
            Assert.AreEqual("123456", cookie.BenchmarkSchools[0].Urn);
        }
Ejemplo n.º 7
0
        public async Task SearchActionCallsServiceWithAddressRemovedFromSchoolNameOnAddSchools()
        {
            var matches = new List <SchoolSearchResult>();

            matches.Add(new SchoolSearchResult()
            {
                URN = "654321"
            });
            matches.Add(new SchoolSearchResult()
            {
                URN = "123456"
            });
            var edubaseSearchResponse = new SearchResultsModel <SchoolSearchResult>(1, null, matches, 50, 0);
            var task = Task.Run(() =>
            {
                return(edubaseSearchResponse);
            });

            _mockSchoolSearchService.Setup(m => m.SearchSchoolByNameAsync("Test", 50, 50, It.IsAny <string>(), It.IsAny <NameValueCollection>()))
            .Returns((string name, int skip, int take, string orderby, NameValueCollection queryParams) => task);

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockLocationSearchService.Object, _mockFilterBuilder.Object, _valService,
                                                        _mockContextDataService.Object, _mockSchoolSearchService.Object, _mockCookieManager.Object);

            controller.ControllerContext = new ControllerContext(_rc, controller);

            var result = await controller.Search("Test (SQR 3NT)", SearchTypes.SEARCH_BY_NAME_ID, "123", null, null, null, null, false, string.Empty, 2, null, "addSchools");

            _mockSchoolSearchService.Verify(req => req.SearchSchoolByNameAsync("Test", 50, 50, string.Empty, null), Times.Once());
        }
Ejemplo n.º 8
0
        public async Task SearchActionReturnsSuggestionsViewIfSearchByLAName()
        {
            dynamic laSearchResponse = new List <LaModel>()
            {
                new LaModel {
                    Id     = "840",
                    LaName = "County Durham"
                },
                new LaModel {
                    Id     = "841",
                    LaName = "Darlington"
                }
            };

            _mockLaService.Setup(m => m.GetLocalAuthorities()).Returns(() => laSearchResponse);
            _mockLaSearchService.Setup(m => m.SearchContains("Test")).Returns(() => laSearchResponse);

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockLocationSearchService.Object, _mockFilterBuilder.Object,
                                                        _valService, _mockContextDataService.Object, _mockSchoolSearchService.Object, _mockCookieManager.Object);

            controller.ControllerContext = new ControllerContext(_rc, controller);

            var result = await controller.Search(null, SearchTypes.SEARCH_BY_LA_CODE_NAME, null, null, null, "Test", null, false, null, 0);

            Assert.IsNotNull(result);
            Assert.AreEqual("La", (result as RedirectToRouteResult).RouteValues["Controller"]);
            Assert.AreEqual("Search", (result as RedirectToRouteResult).RouteValues["Action"]);
            Assert.AreEqual("Test", (result as RedirectToRouteResult).RouteValues["Name"]);
        }
Ejemplo n.º 9
0
        public async Task SearchActionRedirectsToTrustSearchViewIfValidTrustNameProvided()
        {
            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockFilterBuilder.Object, _valService, _mockEdubaseDataService.Object, _mockEdubaseSearchService.Object, _mockTrustSearchService.Object);

            var result = await controller.Search("", "TestTrust", SearchTypes.SEARCH_BY_TRUST_NAME, null, null, null, null, null, null, 0);

            Assert.AreEqual("Trust", (result as RedirectToRouteResult).RouteValues["controller"]);
            Assert.AreEqual("Search", (result as RedirectToRouteResult).RouteValues["action"]);
            Assert.AreEqual("TestTrust", (result as RedirectToRouteResult).RouteValues["name"]);
        }
Ejemplo n.º 10
0
        public async Task SearchActionRedirectsToSchoolViewIfValidUrnProvided()
        {
            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockFilterBuilder.Object, _valService, _mockEdubaseDataService.Object, _mockEdubaseSearchService.Object, _mockTrustSearchService.Object);

            var result = await controller.Search("", "", SearchTypes.SEARCH_BY_NAME_ID, "123456", null, null, null, null, null, 0);

            Assert.AreEqual("School", (result as RedirectToRouteResult).RouteValues["controller"]);
            Assert.AreEqual("Detail", (result as RedirectToRouteResult).RouteValues["action"]);
            Assert.AreEqual("123456", (result as RedirectToRouteResult).RouteValues["urn"]);
        }
Ejemplo n.º 11
0
        public async Task SearchActionReturnsHomeViewIfNotValid()
        {
            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockFilterBuilder.Object, _valService, _mockEdubaseDataService.Object, _mockEdubaseSearchService.Object, _mockTrustSearchService.Object);

            controller.ControllerContext = new ControllerContext(_rc, controller);

            var result = await controller.Search("", "", SearchTypes.SEARCH_BY_NAME_ID, null, null, null, null, null, null, 0);

            Assert.IsNotNull(result);
            Assert.AreEqual("../Home/Index", (result as ViewResult).ViewName);
        }
Ejemplo n.º 12
0
        public async Task SearchActionRedirectsToSchoolViewIfValidUrnProvidedInHomePage()
        {
            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockLocationSearchService.Object, _mockFilterBuilder.Object, _valService,
                                                        _mockContextDataService.Object, _mockSchoolSearchService.Object, _mockCookieManager.Object);

            var result = await controller.Search("", SearchTypes.SEARCH_BY_NAME_ID, "123456", null, null, null, null, false, null, 0);

            Assert.AreEqual("School", (result as RedirectToRouteResult).RouteValues["controller"]);
            Assert.AreEqual("Index", (result as RedirectToRouteResult).RouteValues["action"]);
            Assert.AreEqual("123456", (result as RedirectToRouteResult).RouteValues["urn"]);
        }
Ejemplo n.º 13
0
        public async Task SearchActionRunsAndReturnsTheOnlyLaSuggestionResultIfSearchByLAName()
        {
            dynamic laSearchResponse = new List <dynamic>()
            {
                new{
                    id         = "840",
                    LANAME     = "County Durham",
                    REGION     = "1",
                    REGIONNAME = "North East A"
                },
                new{
                    id         = "841",
                    LANAME     = "Darlington",
                    REGION     = "1",
                    REGIONNAME = "North East A"
                }
            };

            _mockLaService.Setup(m => m.GetLocalAuthorities()).Returns(() => laSearchResponse);

            _mockLaSearchService.Setup(m => m.SearchExactMatch("Test")).Returns(() => new LaModel()
            {
                Id = "123", LaName = "Test"
            });

            var matchedResults = new List <SchoolSearchResult>();

            matchedResults.Add(new SchoolSearchResult()
            {
                URN = "654321"
            });
            var edubaseSearchResponse = new SearchResultsModel <SchoolSearchResult>(2, null, matchedResults, 50, 0);
            var task = Task.Run(() =>
            {
                return(edubaseSearchResponse);
            });

            _mockSchoolSearchService.Setup(m => m.SearchSchoolByLaCodeAsync("123", 0, 50, "EstablishmentName", null)).Returns((string name, int skip, int take, string orderby, NameValueCollection queryParams) => task);

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockLocationSearchService.Object, _mockFilterBuilder.Object, _valService, _mockContextDataService.Object,
                                                        _mockSchoolSearchService.Object, _mockCookieManager.Object);

            controller.ControllerContext = new ControllerContext(_rc, controller);

            var result = await controller.Search(null, SearchTypes.SEARCH_BY_LA_CODE_NAME, null, null, null, "Test", null, false, null);

            Assert.IsTrue(result is ViewResult);
            Assert.AreEqual("SearchResults", (result as ViewResult).ViewName);
        }
Ejemplo n.º 14
0
        public async Task SearchActionRunsAndReturnsTheOnlyLaSuggestionResultIfSearchByLAName()
        {
            dynamic laSearchResponse = new List <dynamic>()
            {
                new{
                    id         = "840",
                    LANAME     = "County Durham",
                    REGION     = "1",
                    REGIONNAME = "North East A"
                },
                new{
                    id         = "841",
                    LANAME     = "Darlington",
                    REGION     = "1",
                    REGIONNAME = "North East A"
                }
            };

            _mockLaService.Setup(m => m.GetLocalAuthorities()).Returns(() => laSearchResponse);

            _mockLaSearchService.Setup(m => m.SearchExactMatch("Test")).Returns(() => new LaViewModel()
            {
                id = "123", LaName = "Test"
            });

            var testDictionary = new Dictionary <string, object>();

            testDictionary.Add("URN", "654321");
            dynamic edubaseSearchResponse = new QueryResultsModel(2, null, new List <IDictionary <string, object> >()
            {
                testDictionary
            }, 50, 0);
            Task <dynamic> task = Task.Run(() =>
            {
                return(edubaseSearchResponse);
            });

            _mockEdubaseSearchService.Setup(m => m.SearchSchoolByLaCode("123", 0, 50, "EstablishmentName", null)).Returns((string name, int skip, int take, string orderby, NameValueCollection queryParams) => task);

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockFilterBuilder.Object, _valService, _mockEdubaseDataService.Object, _mockEdubaseSearchService.Object, _mockTrustSearchService.Object);

            controller.ControllerContext = new ControllerContext(_rc, controller);

            var result = await controller.Search(null, "", SearchTypes.SEARCH_BY_LA_CODE_NAME, null, null, null, "Test", null, null);

            Assert.IsTrue(result is ViewResult);
            Assert.AreEqual("SearchResults", (result as ViewResult).ViewName);
        }
Ejemplo n.º 15
0
        public async Task SearchActionRedirectsToSchoolViewIfUrnIsUsedAsId()
        {
            dynamic testResult = new Microsoft.Azure.Documents.Document();

            testResult.URN = "123456";

            _mockEdubaseDataService.Setup(m => m.GetSchoolByUrn("123456")).Returns((string urn) => testResult);

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockFilterBuilder.Object, _valService, _mockEdubaseDataService.Object, _mockEdubaseSearchService.Object, _mockTrustSearchService.Object);

            var result = await controller.Search("123456", "", SearchTypes.SEARCH_BY_NAME_ID, null, null, null, null, null, null, 0);

            Assert.IsNotNull(result);
            Assert.AreEqual("School", (result as RedirectToRouteResult).RouteValues["controller"]);
            Assert.AreEqual("Detail", (result as RedirectToRouteResult).RouteValues["action"]);
            Assert.AreEqual("123456", (result as RedirectToRouteResult).RouteValues["urn"]);
        }
Ejemplo n.º 16
0
        public void UpdateActionCannotAddMoreThanLimitToComparisonList()
        {
            var request  = new Mock <HttpRequestBase>(MockBehavior.Strict);
            var response = new Mock <HttpResponseBase>(MockBehavior.Strict);
            var context  = new Mock <HttpContextBase>(MockBehavior.Strict);

            context.SetupGet(x => x.Request).Returns(request.Object);
            context.SetupGet(x => x.Response).Returns(response.Object);
            var requestCookies = new HttpCookieCollection();
            var listCookie     = new ComparisonListModel();

            listCookie.BenchmarkSchools = new List <BenchmarkSchoolViewModel>();
            for (int i = 0; i < ComparisonListLimit.LIMIT; i++)
            {
                listCookie.BenchmarkSchools.Add(new BenchmarkSchoolViewModel()
                {
                    Urn = i.ToString(), Name = "test"
                });
            }
            requestCookies.Add(new HttpCookie(CookieNames.COMPARISON_LIST, JsonConvert.SerializeObject(listCookie)));
            context.SetupGet(x => x.Request.Cookies).Returns(requestCookies);
            var responseCookies = new HttpCookieCollection();

            context.SetupGet(x => x.Response.Cookies).Returns(responseCookies);
            var rc = new RequestContext(context.Object, new RouteData());

            dynamic testResult = new Microsoft.Azure.Documents.Document();

            testResult.URN = "123456";

            _mockEdubaseDataService.Setup(m => m.GetSchoolByUrn("123456")).Returns((string urn) => testResult);

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockFilterBuilder.Object, _valService, _mockEdubaseDataService.Object, _mockEdubaseSearchService.Object, _mockTrustSearchService.Object);

            controller.ControllerContext = new ControllerContext(rc, controller);

            var result = controller.UpdateBenchmarkBasket(123456, CompareActions.ADD_TO_COMPARISON_LIST);

            Assert.IsNotNull(result);
            Assert.AreEqual(1, controller.Response.Cookies.Count);
            var cookie = JsonConvert.DeserializeObject <ComparisonListModel>(controller.Response.Cookies[CookieNames.COMPARISON_LIST].Value);

            Assert.AreEqual(ComparisonListLimit.LIMIT, cookie.BenchmarkSchools.Count);
        }
Ejemplo n.º 17
0
        public async Task SearchActionRedirectsToSchoolViewIfUrnIsUsedAsId()
        {
            var GetSchoolDataObjectByUrnAsyncTask = Task.Run(() => new EdubaseDataObject {
                URN = 123456
            });

            _mockContextDataService.Setup(m => m.GetSchoolDataObjectByUrnAsync(123456)).Returns((long urn) => GetSchoolDataObjectByUrnAsyncTask);

            var controller = new SchoolSearchController(_mockLaService.Object,
                                                        _mockLaSearchService.Object, _mockLocationSearchService.Object, _mockFilterBuilder.Object, _valService,
                                                        _mockContextDataService.Object, _mockSchoolSearchService.Object, _mockCookieManager.Object);

            var result = await controller.Search("123456", SearchTypes.SEARCH_BY_NAME_ID, null, null, null, null, null, false, null, 1);

            Assert.IsNotNull(result);
            Assert.AreEqual("School", (result as RedirectToRouteResult).RouteValues["controller"]);
            Assert.AreEqual("Index", (result as RedirectToRouteResult).RouteValues["action"]);
            Assert.AreEqual(123456, (result as RedirectToRouteResult).RouteValues["urn"]);
        }
Ejemplo n.º 18
0
        public async Task SearchActionReturnsSuggestionsViewIfSearchByLocationKeyword()
        {
            _mockLocationSearchService.Setup(m => m.SuggestLocationName("Test")).Returns(() => new SuggestionQueryResult(new List <Disambiguation>()
            {
                new Disambiguation {
                    Text = "Test"
                }
            }));

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockLocationSearchService.Object, _mockFilterBuilder.Object,
                                                        _valService, _mockContextDataService.Object, _mockSchoolSearchService.Object, _mockCookieManager.Object);

            controller.ControllerContext = new ControllerContext(_rc, controller);

            var result = await controller.Search(null, SearchTypes.SEARCH_BY_LOCATION, null, "Test", null, null, null, false, null, 0);

            Assert.IsNotNull(result);
            Assert.AreEqual("Location", (result as RedirectToRouteResult).RouteValues["Controller"]);
            Assert.AreEqual("Suggest", (result as RedirectToRouteResult).RouteValues["Action"]);
            Assert.AreEqual("Test", (result as RedirectToRouteResult).RouteValues["locationorpostcode"]);
        }
Ejemplo n.º 19
0
        public async Task SearchActionReturnsSuggestionsViewIfResultEmpty()
        {
            dynamic edubaseSearchResponse = new QueryResultsModel(0, null, null, 50, 0);

            Task <dynamic> task = Task.Run(() =>
            {
                return(edubaseSearchResponse);
            });

            _mockEdubaseSearchService.Setup(m => m.SearchSchoolByName("Test", 0, 50, null, null)).Returns((string name, int skip, int take, string orderby, NameValueCollection queryParams) => task);

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockFilterBuilder.Object, _valService, _mockEdubaseDataService.Object, _mockEdubaseSearchService.Object, _mockTrustSearchService.Object);

            controller.ControllerContext = new ControllerContext(_rc, controller);

            var result = await controller.Search("Test", "", SearchTypes.SEARCH_BY_NAME_ID, null, null, null, null, null, null);

            Assert.IsNotNull(result);
            Assert.AreEqual("SchoolSearch", (result as RedirectToRouteResult).RouteValues["Controller"]);
            Assert.AreEqual("SuggestSchool", (result as RedirectToRouteResult).RouteValues["Action"]);
            Assert.AreEqual("Test", (result as RedirectToRouteResult).RouteValues["NameId"]);
        }
Ejemplo n.º 20
0
        public async Task SearchActionRedirectsToSearchViewIfLaEstabIsUsedAsIdAndMultipleResultsFound()
        {
            var testResult = new List <EdubaseDataObject>()
            {
                new EdubaseDataObject()
                {
                    URN = 1234567
                }, new EdubaseDataObject()
                {
                    URN = 1234568
                }
            };

            Task <List <EdubaseDataObject> > GetSchoolDataObjectByLaEstabAsyncTask = Task.Run(() =>
            {
                return(testResult);
            });

            _mockContextDataService.Setup(m => m.GetSchoolDataObjectByLaEstabAsync("1234567", false)).Returns((string urn, bool openOnly) => GetSchoolDataObjectByLaEstabAsyncTask);

            var SearchSchoolByLaEstabTask = Task.Run(() =>
            {
                var facets = new Dictionary <string, FacetResultModel[]>();
                facets.Add("OverallPhase", new FacetResultModel[] { new FacetResultModel()
                                                                    {
                                                                        Value = "Primary", Count = 2
                                                                    }, new FacetResultModel()
                                                                    {
                                                                        Value = "Secondary", Count = 1
                                                                    }, new FacetResultModel()
                                                                    {
                                                                        Value = "All through", Count = 1
                                                                    } });
                facets.Add("TypeOfEstablishment", new FacetResultModel[] { new FacetResultModel()
                                                                           {
                                                                               Value = "Pupil Referral Unit", Count = 2
                                                                           }, new FacetResultModel()
                                                                           {
                                                                               Value = "Nursery", Count = 1
                                                                           }, new FacetResultModel()
                                                                           {
                                                                               Value = "Primary", Count = 1
                                                                           } });
                facets.Add("OfstedRating", new FacetResultModel[] { new FacetResultModel()
                                                                    {
                                                                        Value = "Outstanding", Count = 2
                                                                    }, new FacetResultModel()
                                                                    {
                                                                        Value = "Good", Count = 1
                                                                    }, new FacetResultModel()
                                                                    {
                                                                        Value = "Requires Improvement", Count = 1
                                                                    } });
                facets.Add("ReligiousCharacter", new FacetResultModel[] { new FacetResultModel()
                                                                          {
                                                                              Value = "Hindu", Count = 2
                                                                          }, new FacetResultModel()
                                                                          {
                                                                              Value = "Church of England", Count = 1
                                                                          }, new FacetResultModel()
                                                                          {
                                                                              Value = "Roman Catholic", Count = 1
                                                                          } });

                var matches = new List <SchoolSearchResult>();
                matches.Add(new SchoolSearchResult());
                var results = new SearchResultsModel <SchoolSearchResult>(5, facets, matches, 5, 0);
                return(results);
            });

            _mockSchoolSearchService.Setup(m => m.SearchSchoolByLaEstabAsync("1234567", 0, SearchDefaults.RESULTS_PER_PAGE, null, null))
            .Returns((string laEstab, int skip, int take, string @orderby, NameValueCollection queryParams) => SearchSchoolByLaEstabTask);

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockLocationSearchService.Object, _mockFilterBuilder.Object,
                                                        _valService, _mockContextDataService.Object, _mockSchoolSearchService.Object, _mockCookieManager.Object);

            controller.ControllerContext = new ControllerContext(_rc, controller);

            var result = await controller.Search("1234567", SearchTypes.SEARCH_BY_NAME_ID, null, null, null, null, null, false, null, 1);

            Assert.IsTrue(result is ViewResult);
            Assert.AreEqual("SearchResults", (result as ViewResult).ViewName);
        }
Ejemplo n.º 21
0
        public async Task SearchActionReturnsAlphabeticalOrderedFacetFiltersForPhase()
        {
            Task <SearchResultsModel <SchoolSearchResult> > task = Task.Run(() =>
            {
                var facets = new Dictionary <string, FacetResultModel[]>();
                facets.Add("OverallPhase", new FacetResultModel[] { new FacetResultModel()
                                                                    {
                                                                        Value = "Primary", Count = 2
                                                                    }, new FacetResultModel()
                                                                    {
                                                                        Value = "Secondary", Count = 1
                                                                    }, new FacetResultModel()
                                                                    {
                                                                        Value = "All through", Count = 1
                                                                    } });
                facets.Add("TypeOfEstablishment", new FacetResultModel[] { new FacetResultModel()
                                                                           {
                                                                               Value = "Pupil Referral Unit", Count = 2
                                                                           }, new FacetResultModel()
                                                                           {
                                                                               Value = "Nursery", Count = 1
                                                                           }, new FacetResultModel()
                                                                           {
                                                                               Value = "Primary", Count = 1
                                                                           } });
                facets.Add("OfstedRating", new FacetResultModel[] { new FacetResultModel()
                                                                    {
                                                                        Value = "Outstanding", Count = 2
                                                                    }, new FacetResultModel()
                                                                    {
                                                                        Value = "Good", Count = 1
                                                                    }, new FacetResultModel()
                                                                    {
                                                                        Value = "Requires Improvement", Count = 1
                                                                    } });
                facets.Add("ReligiousCharacter", new FacetResultModel[] { new FacetResultModel()
                                                                          {
                                                                              Value = "Hindu", Count = 2
                                                                          }, new FacetResultModel()
                                                                          {
                                                                              Value = "Church of England", Count = 1
                                                                          }, new FacetResultModel()
                                                                          {
                                                                              Value = "Roman Catholic", Count = 1
                                                                          } });
                facets.Add("EstablishmentStatus", new FacetResultModel[] { new FacetResultModel()
                                                                           {
                                                                               Value = "Open", Count = 2
                                                                           }, new FacetResultModel()
                                                                           {
                                                                               Value = "Closed", Count = 1
                                                                           } });

                var matchedResults = new List <SchoolSearchResult>();
                matchedResults.Add(new SchoolSearchResult());
                var results = new SearchResultsModel <SchoolSearchResult>(5, facets, matchedResults, 5, 0);
                return(results);
            });

            _mockSchoolSearchService.Setup(m => m.SearchSchoolByNameAsync("Test", 0, 50, null, null)).Returns((string name, int skip, int take, string orderby, NameValueCollection queryParams) => task);

            var controller = new SchoolSearchController(_mockLaService.Object, _mockLaSearchService.Object, _mockLocationSearchService.Object, new FilterBuilder(),
                                                        _valService, _mockContextDataService.Object, _mockSchoolSearchService.Object, _mockCookieManager.Object);

            controller.ControllerContext = new ControllerContext(_rc, controller);

            var result = await controller.Search("Test", SearchTypes.SEARCH_BY_NAME_ID, null, null, null, null, null, false, null, 1);

            var filters = ((result as ViewResult).Model as SearchedSchoolListViewModel).Filters;

            var TypeFilter = filters.First(l => l.Id == "schoolLevel");

            Assert.IsTrue(TypeFilter.Metadata[2].Label.CompareTo(TypeFilter.Metadata[1].Label) < 0);
            Assert.IsTrue(TypeFilter.Metadata[2].Label.CompareTo(TypeFilter.Metadata[0].Label) < 0);
        }