public void GridSorting( FilterSearchData.GridColumnsNames columnName, FilterSearchData.ToolsTypes toolType, string searchTerm) { this.App.Ui.ToolsMain.SelectToolType(toolType); this.App.Ui.ToolsMain.PerformSearch(searchTerm); this.App.Ui.ToolsMain.ClickColumnName(columnName); var sorting = this.App.Ui.ToolsMain.GetCurrentSorting(); Assert.That( sorting.Key.Equals(columnName.ToString()) && sorting.Value.Equals("ASC"), $"Sorting is incorrect. Should be ASC by '{columnName}'"); var names = this.GetDefinedIntResults(columnName); this.App.Ui.ToolsMain.ClickRandomPage(); names.AddRange(this.GetDefinedIntResults(columnName)); Assert.That(names.SequenceEqual(names.OrderBy(n => n).ToList()), "Order is wrong"); App.Ui.ToolsMain.ClickPage(1); this.App.Ui.ToolsMain.ClickColumnName(columnName); sorting = this.App.Ui.ToolsMain.GetCurrentSorting(); Assert.That(sorting.Key.Equals(columnName.ToString()) && sorting.Value.Equals("DESC")); names = this.GetDefinedIntResults(columnName); this.App.Ui.ToolsMain.ClickPage(2); #region remove zeroes names.AddRange(this.GetDefinedIntResults(columnName)); int numberOfZero = 0; if (names.Contains(0)) { foreach (var n in names) { if (n == 0) { numberOfZero++; } } for (int i = 0; i < numberOfZero; i++) { names.Remove(0); } } #endregion Assert.That(names.SequenceEqual(names.OrderByDescending(n => n).ToList()), "Order is wrong"); }
//ToolAssembly model is used for all Tool types since there is no difference on UI private List <int> GetDefinedIntResults(FilterSearchData.GridColumnsNames searchFieldName) { switch (searchFieldName) { case FilterSearchData.GridColumnsNames.LENGTH: { return(this.App.Ui.ToolsMain.GetAssembliesResults().Select(r => r.Length).ToList()); } case FilterSearchData.GridColumnsNames.QUANTITY: { return(this.App.Ui.ToolsMain.GetAssembliesResults().Select(r => r.Quantity).ToList()); } case FilterSearchData.GridColumnsNames.SIZE: { return(this.App.Ui.ToolsMain.GetAssembliesResults() .Select(r => r.CutterAssembly.Cutter.Diameter).ToList()); } default: { return(null); } } }
public void ClickColumnName(FilterSearchData.GridColumnsNames name) { this.UpdateGridSlow(() => this.App.Pages.ToolsPages.ToolsMainPage.ClickColumnName(name.ToString()), 10); }