public void Then_Adds_PageLink_For_Every_Page() { var filterModel = new ApprenticesFilterModel { SearchTerm = "asedfas", SelectedProvider = "asdsad", SelectedCourse = "iknjso", SelectedStatus = ApprenticeshipStatus.WaitingToStart, SelectedEndDate = DateTime.Today, TotalNumberOfApprenticeshipsFound = Constants.ApprenticesSearch.NumberOfApprenticesPerSearchPage * 3, SortField = "gsd", ReverseSort = false }; var pageLinks = filterModel.PageLinks.Where(link => link.Label.ToUpper() != "PREVIOUS" && link.Label.ToUpper() != "NEXT").ToList(); for (var i = 0; i < 3; i++) { pageLinks[i].Label.Should().Be($"{i + 1}"); pageLinks[i].AriaLabel.Should().Be($"Page {i + 1}"); pageLinks[i].RouteData.Should().BeEquivalentTo(new Dictionary <string, string> { { nameof(filterModel.SearchTerm), filterModel.SearchTerm }, { nameof(filterModel.SelectedProvider), filterModel.SelectedProvider }, { nameof(filterModel.SelectedCourse), filterModel.SelectedCourse }, { nameof(filterModel.SelectedStatus), filterModel.SelectedStatus.ToString() }, { nameof(filterModel.SelectedEndDate), filterModel.SelectedEndDate.Value.ToString("yyyy-MM-dd") }, { nameof(filterModel.SortField), filterModel.SortField }, { nameof(filterModel.ReverseSort), filterModel.ReverseSort.ToString() }, { nameof(filterModel.PageNumber), (i + 1).ToString() } }); } }
public void And_PageNumber_3_Then_Should_Be_Triple_PageSize(ApprenticesFilterModel filterModel) { filterModel.PageNumber = 3; filterModel.TotalNumberOfApprenticeshipsFound = 20 * Constants.ApprenticesSearch.NumberOfApprenticesPerSearchPage; filterModel.PagedRecordsTo.Should().Be(3 * Constants.ApprenticesSearch.NumberOfApprenticesPerSearchPage); }
public void Then_Not_Contain_Item_For_PageNumber( ApprenticesFilterModel filterModel) { filterModel.RouteData.Should().NotContain(new KeyValuePair <string, string>( nameof(filterModel.PageNumber), filterModel.PageNumber.ToString()) ); }
public void And_PageNumber_1_And_0_Records_Found_Then_Should_Be_0(ApprenticesFilterModel filterModel) { filterModel.PageNumber = 1; filterModel.TotalNumberOfApprenticeshipsFound = 0; filterModel.PagedRecordsFrom.Should().Be(0); }
private static IList <string> BuildUsedFilterList(ApprenticesFilterModel model) { var filters = new List <string>(); if (!string.IsNullOrWhiteSpace(model.SearchTerm)) { filters.Add($"‘{WebUtility.HtmlEncode(model.SearchTerm)}’"); } if (!string.IsNullOrWhiteSpace(model.SelectedProvider)) { filters.Add(WebUtility.HtmlEncode(model.SelectedProvider)); } if (!string.IsNullOrWhiteSpace(model.SelectedCourse)) { filters.Add(WebUtility.HtmlEncode(model.SelectedCourse)); } if (model.SelectedStatus.HasValue) { filters.Add(model.SelectedStatus.Value.GetDescription()); } if (model.SelectedEndDate.HasValue) { filters.Add(model.SelectedEndDate.Value.ToGdsFormatWithoutDay()); } return(filters); }
public void And_Has_SelectedEmployer_Then_True() { var filterModel = new ApprenticesFilterModel { SelectedProvider = "asedfas" }; filterModel.SearchOrFiltersApplied.Should().BeTrue(); }
public void And_Has_SelectedCourse_Then_True() { var filterModel = new ApprenticesFilterModel { SelectedCourse = "asedfas" }; filterModel.SearchOrFiltersApplied.Should().BeTrue(); }
public void And_Has_SelectedStatus_Then_True() { var filterModel = new ApprenticesFilterModel { SelectedStatus = ApprenticeshipStatus.WaitingToStart }; filterModel.SearchOrFiltersApplied.Should().BeTrue(); }
public void And_Has_SelectedEndDate_Then_True() { var filterModel = new ApprenticesFilterModel { SelectedEndDate = DateTime.Today }; filterModel.SearchOrFiltersApplied.Should().BeTrue(); }
public void And_Has_SelectedAlert_Then_True() { var filterModel = new ApprenticesFilterModel { SelectedAlert = Alerts.IlrDataMismatch }; filterModel.SearchOrFiltersApplied.Should().BeTrue(); }
public void And_No_Search_And_SelectedAlert_Then_SelectedAlert(Alerts selectedAlert) { var filterModel = new ApprenticesFilterModel { SelectedAlert = selectedAlert }; filterModel.FiltersUsedMessage.Value.Should().Be($"matching <strong>{selectedAlert.GetDescription()}</strong>"); }
public void Then_Should_Set_SortField( string sortField, ApprenticesFilterModel model) { //Act var actual = model.BuildSortRouteData(sortField); //Assert Assert.AreEqual(sortField, actual[nameof(model.SortField)]); }
public void And_No_Search_And_SelectedEndDate_Then_SelectedEndDate( DateTime selectedEndDate) { var filterModel = new ApprenticesFilterModel { SelectedEndDate = selectedEndDate }; filterModel.FiltersUsedMessage.Value.Should().Be($"matching <strong>{selectedEndDate.ToGdsFormatWithoutDay()}</strong>"); }
public void And_No_Search_And_SelectedCourse_Then_SelectedCourse( string selectedCourse) { var filterModel = new ApprenticesFilterModel { SelectedCourse = selectedCourse }; filterModel.FiltersUsedMessage.Value.Should().Be($"matching <strong>{selectedCourse}</strong>"); }
public void And_No_Search_And_SelectedEmployer_Then_SelectedEmployer( string selectedEmployer) { var filterModel = new ApprenticesFilterModel { SelectedEmployer = selectedEmployer }; filterModel.FiltersUsedMessage.Value.Should().Be($"matching <strong>{selectedEmployer}</strong>"); }
public void And_No_Search_And_SelectedStatus_Then_SelectedStatus( ApprenticeshipStatus selectedStatus) { var filterModel = new ApprenticesFilterModel { SelectedStatus = selectedStatus }; filterModel.FiltersUsedMessage.Value.Should().Be($"matching <strong>{selectedStatus.GetDescription()}</strong>"); }
public void And_Search_And_No_Filters_Then_Quoted_SearchTerm( string searchTerm) { var filterModel = new ApprenticesFilterModel { SearchTerm = searchTerm }; filterModel.FiltersUsedMessage.Value.Should().Be($"matching <strong>‘{searchTerm}’</strong>"); }
public void Then_The_Show_Search_Flag_Is_Set_Based_On_Number_Of_Apprentices(int numberOfApprentices, bool expectedBool) { //Act var filterModel = new ApprenticesFilterModel { TotalNumberOfApprenticeships = numberOfApprentices }; //Assert Assert.AreEqual(expectedBool, filterModel.ShowSearch); }
public void And_Search_Has_Html_Then_Html_Encodes_It() { var htmlSearchTerm = "<script>alert('hi');</script>"; var filterModel = new ApprenticesFilterModel { SearchTerm = htmlSearchTerm, SelectedEmployer = htmlSearchTerm, SelectedCourse = htmlSearchTerm }; filterModel.FiltersUsedMessage.Value.Should().Be($"matching <strong>‘{WebUtility.HtmlEncode(htmlSearchTerm)}’</strong>, <strong>{WebUtility.HtmlEncode(htmlSearchTerm)}</strong> and <strong>{WebUtility.HtmlEncode(htmlSearchTerm)}</strong>"); }
public void And_Is_First_Page_Then_No_Previous() { var filterModel = new ApprenticesFilterModel { PageNumber = 1, TotalNumberOfApprenticeshipsFound = Constants.ApprenticesSearch.NumberOfApprenticesPerSearchPage * 6 }; var pageLinks = filterModel.PageLinks.ToList(); pageLinks.First().Label.Should().Be(1.ToString()); }
public void Then_Contains_Item_For_Each_Search_And_Filter_Value( ApprenticesFilterModel filterModel) { filterModel.RouteData.Should().BeEquivalentTo(new Dictionary <string, string> { { nameof(filterModel.SearchTerm), filterModel.SearchTerm }, { nameof(filterModel.SelectedProvider), filterModel.SelectedProvider }, { nameof(filterModel.SelectedCourse), filterModel.SelectedCourse }, { nameof(filterModel.SelectedStatus), filterModel.SelectedStatus.ToString() }, { nameof(filterModel.SelectedEndDate), filterModel.SelectedEndDate.Value.ToString("yyyy-MM-dd") } }); }
public void And_More_Than_5_Pages_Then_Only_5_PageLinks() { var filterModel = new ApprenticesFilterModel { PageNumber = 1, TotalNumberOfApprenticeshipsFound = Constants.ApprenticesSearch.NumberOfApprenticesPerSearchPage * 10 }; filterModel.PageLinks.Count(link => link.Label.ToUpper() != "PREVIOUS" && link.Label.ToUpper() != "NEXT") .Should().Be(5); }
public void And_1_Page_Then_No_Next_Or_Previous() { var filterModel = new ApprenticesFilterModel { PageNumber = 1, TotalNumberOfApprenticeshipsFound = Constants.ApprenticesSearch.NumberOfApprenticesPerSearchPage - 1 }; var pageLinks = filterModel.PageLinks.ToList(); pageLinks.Any(link => link.Label.ToUpper() == "PREVIOUS").Should().BeFalse(); pageLinks.Any(link => link.Label.ToUpper() == "NEXT").Should().BeFalse(); }
public void And_No_SortField_Then_Should_Set_ReverseSort( string sortField, ApprenticesFilterModel model) { //Arrange model.SortField = null; var expected = !model.ReverseSort; //Act var actual = model.BuildSortRouteData(sortField); //Assert Assert.AreEqual(expected.ToString(), actual[nameof(model.ReverseSort)]); }
public void And_Search_And_SelectedProvider_Then_SearchTerm_And_SelectedProvider( string searchTerm, string selectedProvider) { var filterModel = new ApprenticesFilterModel { SearchTerm = searchTerm, SelectedProvider = selectedProvider }; filterModel.FiltersUsedMessage.Value .Should().Be($"matching <strong>‘{searchTerm}’</strong>" + $" and <strong>{selectedProvider}</strong>"); }
public void And_PageNumber_3_Then_Sets_Current_On_3() { var filterModel = new ApprenticesFilterModel { PageNumber = 3, TotalNumberOfApprenticeshipsFound = Constants.ApprenticesSearch.NumberOfApprenticesPerSearchPage * 3 }; var pageLinks = filterModel.PageLinks.Where(link => link.Label.ToUpper() != "PREVIOUS" && link.Label.ToUpper() != "NEXT").ToList(); pageLinks[0].IsCurrent.Should().BeNull(); pageLinks[1].IsCurrent.Should().BeNull(); pageLinks[2].IsCurrent.Should().BeTrue(); }
public void And_Not_Last_Page_Then_Adds_Next() { var filterModel = new ApprenticesFilterModel { PageNumber = 1, TotalNumberOfApprenticeshipsFound = Constants.ApprenticesSearch.NumberOfApprenticesPerSearchPage * 6 }; var pageLinks = filterModel.PageLinks.ToList(); pageLinks.Last().Label.Should().Be("Next"); pageLinks.Last().AriaLabel.Should().Be("Next page"); pageLinks.Last().RouteData.Should() .BeEquivalentTo(pageLinks.Single(link => link.Label == (filterModel.PageNumber + 1).ToString()).RouteData); }
public void And_Not_First_Page_Then_Adds_Previous() { var filterModel = new ApprenticesFilterModel { PageNumber = 2, TotalNumberOfApprenticeshipsFound = Constants.ApprenticesSearch.NumberOfApprenticesPerSearchPage * 6 }; var pageLinks = filterModel.PageLinks.ToList(); pageLinks.First().Label.Should().Be("Previous"); pageLinks.First().AriaLabel.Should().Be("Previous page"); pageLinks.First().RouteData.Should() .BeEquivalentTo(pageLinks.Single(link => link.Label == "1").RouteData); }
public void And_Search_And_SelectedEmployer_And_SelectedCourse_Then_SearchTerm_Comma_SelectedEmployer_And_SelectedCourse( string searchTerm, string selectedEmployer, string selectedCourse) { var filterModel = new ApprenticesFilterModel { SearchTerm = searchTerm, SelectedEmployer = selectedEmployer, SelectedCourse = selectedCourse }; filterModel.FiltersUsedMessage.Value .Should().Be($"matching <strong>‘{searchTerm}’</strong>" + $", <strong>{selectedEmployer}</strong>" + $" and <strong>{selectedCourse}</strong>"); }
public void And_SelectedEmployer_And_SelectedCourse_And_SelectedStartDate_Then_SelectedEmployer_Comma_SelectedCourse_And_SelectedStartDate( string selectedEmployer, string selectedCourse, DateTime selectedStartDate) { var filterModel = new ApprenticesFilterModel { SelectedEmployer = selectedEmployer, SelectedCourse = selectedCourse, SelectedStartDate = selectedStartDate }; filterModel.FiltersUsedMessage.Value .Should().Be($"matching <strong>{selectedEmployer}</strong>" + $", <strong>{selectedCourse}</strong>" + $" and <strong>{selectedStartDate.ToGdsFormatWithoutDay()}</strong>"); }