public void Then_Has_Keyword_And_OrderBy_Then_Builds_QueryString_With_Keyword_And_OrderBy(Generator <int> selectedLevelsGenerator, string keyword) { //Arrange Act var selectedLevels = selectedLevelsGenerator.Distinct().Take(3).ToList(); var model = CoursesViewModelFactory.BuildModel(new List <string>(), keyword, selectedLevels); //Assert var clearLinkCount = selectedLevels.Count; Assert.AreEqual(clearLinkCount, model.ClearLevelLinks.Count); foreach (var selectedLevel in selectedLevels) { var levelViewModel = model.Levels.SingleOrDefault(c => c.Code.Equals(selectedLevel)); Assert.IsNotNull(levelViewModel); Assert.IsTrue(model.ClearLevelLinks.ContainsKey(levelViewModel.Title)); AssertClearLevelLink(model, clearLinkCount); Assert.AreEqual(clearLinkCount, model.ClearLevelLinks.Count(c => c.Value.Contains($"keyword={keyword}"))); Assert.AreEqual(clearLinkCount, model.ClearLevelLinks.Count(c => c.Value.Contains($"orderby={OrderBy.Name}"))); } }
public void Then_If_There_Are_Filtered_Keywords_The_ShowFilterOptions_Property_Is_True(string keyword) { //Arrange Act var model = CoursesViewModelFactory.BuildModel(new List <string>(), keyword, new List <int>()); //Assert Assert.IsTrue(model.ShowFilterOptions); }
public void Then_If_There_Is_No_Keyword_Search_And_OrderBy_It_Is_Set_To_None() { //Arrange Act var model = CoursesViewModelFactory.BuildModel(new List <string>(), "", new List <int>()); //Assert Assert.AreEqual(OrderBy.None, model.OrderBy); }
public void Then_If_There_Are_Filtered_Levels_Sectors_Keywords_The_ShowFilterOptions_Property_Is_True(List <int> selectedLevels, List <string> selectedRoutes, string keyword) { //Arrange Act var model = CoursesViewModelFactory.BuildModel(selectedRoutes, keyword, selectedLevels); //Assert Assert.IsTrue(model.ShowFilterOptions); }
public void Then_If_There_Are_No_Filtered_Options_The_ShowFilterOptions_Property_Is_False() { //Arrange Act var model = CoursesViewModelFactory.BuildModel(new List <string>(), "", new List <int>()); //Assert Assert.IsFalse(model.ShowFilterOptions); }
public void Then_If_There_Is_A_Keyword_Search_And_OrderBy_It_Is_Maintained() { //Arrange Act var model = CoursesViewModelFactory.BuildModel(new List <string>(), "test", new List <int>()); //Assert Assert.AreEqual(OrderBy.Name, model.OrderBy); }
public void Then_Adds_Levels_To_Query_String(List <int> selectedLevels) { // Act var model = CoursesViewModelFactory.BuildModel(new List <string>(), null, selectedLevels); // Assert model.OrderByName.Should().Be($"?orderby={OrderBy.Name}&levels={string.Join("&levels=", selectedLevels)}"); model.OrderByRelevance.Should().Be($"?orderby={OrderBy.Relevance}&levels={string.Join("&levels=", selectedLevels)}"); }
public void Then_Adds_Sectors_And_Levels_To_Query_String(List <int> selectedLevels, List <string> selectedRoutes) { // Act var model = CoursesViewModelFactory.BuildModel(selectedRoutes, null, selectedLevels); // Assert model.OrderByName.Should().Be($"?orderby={OrderBy.Name}§ors={string.Join("§ors=", selectedRoutes.Select(HttpUtility.HtmlEncode))}&levels={string.Join("&levels=", selectedLevels)}"); model.OrderByRelevance.Should().Be($"?orderby={OrderBy.Relevance}§ors={string.Join("§ors=", selectedRoutes.Select(HttpUtility.HtmlEncode))}&levels={string.Join("&levels=", selectedLevels)}"); }
public void Then_Adds_Keyword_To_Query_String(string keyword) { // Arrange Act var model = CoursesViewModelFactory.BuildModel(new List <string>(), keyword, new List <int>()); // Assert model.OrderByName.Should().Be($"?keyword={model.Keyword}&orderby={OrderBy.Name}"); model.OrderByRelevance.Should().Be($"?keyword={model.Keyword}&orderby={OrderBy.Relevance}"); }
public void Then_Adds_OrderBy_Name_To_Query_String() { // Arrange Act var model = CoursesViewModelFactory.BuildModel(new List <string>(), null, new List <int>()); // Assert model.OrderByName.Should().Be($"?orderby={OrderBy.Name}"); model.OrderByRelevance.Should().Be($"?orderby={OrderBy.Relevance}"); }
public void Then_The_Clear_Keyword_Link_Is_Generated_If_Filtered_By_Keyword_With_Sectors_And_Levels(List <string> selectedRoutes, List <int> selectedLevels, string keyword) { //Arrange Act var model = CoursesViewModelFactory.BuildModel(selectedRoutes, keyword, selectedLevels); //Assert Assert.IsNotNull(model.ClearKeywordLink); Assert.AreEqual("?sectors=" + string.Join("§ors=", model.SelectedSectors.Select(HttpUtility.HtmlEncode)) + "&levels=" + string.Join("&levels=", model.SelectedLevels), model.ClearKeywordLink); }
public void Then_The_Clear_Keyword_Link_Is_Generated_If_Filtered_By_Keyword_With_Levels(List <int> selectedLevels, string keyword) { //Arrange Act var model = CoursesViewModelFactory.BuildModel(new List <string>(), keyword, selectedLevels); //Assert Assert.IsNotNull(model.ClearKeywordLink); Assert.AreEqual("?levels=" + string.Join("&levels=", model.SelectedLevels), model.ClearKeywordLink); }
public void Then_The_Clear_Filter_Items_Are_Built_From_The_Selected_Sectors(List <string> selectedRoutes, string keyword) { //Arrange Act var model = CoursesViewModelFactory.BuildModel(selectedRoutes, keyword, new List <int>()); //Assert var clearLinkCount = selectedRoutes.Count; Assert.AreEqual(clearLinkCount, model.ClearSectorLinks.Count); foreach (var selectedRoute in selectedRoutes) { var sector = model.Sectors.SingleOrDefault(c => c.Route.Equals(selectedRoute)); Assert.IsNotNull(sector); Assert.IsTrue(model.ClearSectorLinks.ContainsKey(sector.Route)); Assert.AreEqual(clearLinkCount - 1, model.ClearSectorLinks.Count(c => c.Value.Contains($"sectors={HttpUtility.HtmlEncode(selectedRoute)}"))); Assert.AreEqual(clearLinkCount, model.ClearSectorLinks.Count(c => c.Value.Contains($"keyword={keyword}"))); } }
public void Then_The_Clear_Filter_Items_Are_Built_From_The_Selected_Levels_And_Sectors(Generator <int> selectedLevelsGenerator, List <string> selectedRoutes, string keyword) { //Arrange Act var selectedLevels = selectedLevelsGenerator.Distinct().Take(3).ToList(); var model = CoursesViewModelFactory.BuildModel(selectedRoutes, keyword, selectedLevels); //Assert var clearSectorsLinkCount = selectedRoutes.Count; Assert.AreEqual(clearSectorsLinkCount, model.ClearSectorLinks.Count); var clearLevelsLinkCount = selectedLevels.Count; Assert.AreEqual(clearLevelsLinkCount, model.ClearLevelLinks.Count); foreach (var selectedLevel in selectedLevels) { var levelViewModel = model.Levels.SingleOrDefault(c => c.Code.Equals(selectedLevel)); Assert.IsNotNull(levelViewModel); Assert.IsTrue(model.ClearLevelLinks.ContainsKey(levelViewModel.Title)); AssertClearLevelLink(model, clearLevelsLinkCount); Assert.AreEqual(clearLevelsLinkCount, model.ClearLevelLinks.Count(c => c.Value.Contains($"?keyword={keyword}"))); Assert.AreEqual(clearLevelsLinkCount, model.ClearLevelLinks.Count(c => c.Value.Contains("§ors=" + string.Join("§ors=", selectedRoutes.Select(HttpUtility.HtmlEncode))))); Assert.AreEqual(clearLevelsLinkCount, model.ClearLevelLinks.Count(c => c.Value.Contains($"orderby="))); } foreach (var selectedRoute in selectedRoutes) { var sector = model.Sectors.SingleOrDefault(c => c.Route.Equals(selectedRoute)); Assert.IsNotNull(sector); Assert.IsTrue(model.ClearSectorLinks.ContainsKey(sector.Route)); Assert.AreEqual(clearSectorsLinkCount - 1, model.ClearSectorLinks.Count(c => c.Value.Contains($"sectors={HttpUtility.HtmlEncode(selectedRoute)}"))); Assert.AreEqual(clearSectorsLinkCount, model.ClearSectorLinks.Count(c => c.Value.Contains($"?keyword={keyword}"))); Assert.AreEqual(clearSectorsLinkCount, model.ClearSectorLinks.Count(c => c.Value.Contains("&levels=" + string.Join("&levels=", model.SelectedLevels)))); Assert.AreEqual(clearSectorsLinkCount, model.ClearSectorLinks.Count(c => c.Value.Contains($"orderby="))); } }
public void Then_The_Clear_Filter_Items_Are_Built_From_The_Selected_Levels(Generator <int> selectedLevelsGenerator) { //Arrange Act var selectedLevels = selectedLevelsGenerator.Distinct().Take(3).ToList(); var model = CoursesViewModelFactory.BuildModel(new List <string>(), "", selectedLevels); //Assert var clearLinkCount = selectedLevels.Count; Assert.AreEqual(clearLinkCount, model.ClearLevelLinks.Count); foreach (var selectedLevel in selectedLevels) { var levelViewModel = model.Levels.SingleOrDefault(c => c.Code.Equals(selectedLevel)); Assert.IsNotNull(levelViewModel); Assert.IsTrue(model.ClearLevelLinks.ContainsKey(levelViewModel.Title)); AssertClearLevelLink(model, clearLinkCount); Assert.AreEqual(0, model.ClearLevelLinks.Count(c => c.Value.Contains("orderby="))); } }