public void SearchByCharFiledShouldWorkProperlyAndCaseInsensitive(int testCase, Func <AllTypesModel, string> selector) { var colNames = new string[] { "CharProperty", "CharNullable", "Nested Model CharProperty", "Nested Model CharNullable" }; for (int i = 0; i < 2; i++) { this.navigator.AllTypesDataPage().GoTo("?showString=false"); var tableElement = new TableElement("table", this.driver); var searchValue = this.GetRandomCharContainedInDataSwitchedCase(selector).ToString().RandomiseCase(); tableElement.TypeInSearchBox(searchValue); Thread.Sleep(GlobalConstants.GlobalThreadSleep); var columnValuesCollection = new List <IList <string> >(); foreach (var colName in colNames) { columnValuesCollection.Add(tableElement.GetColumnRowValues(colName).ToList()); } var joinedColumns = this.ConcatItems(columnValuesCollection.ToArray()); Assert.IsNotEmpty(joinedColumns); Assert.IsTrue(joinedColumns.All(x => x.ToLower().Contains(searchValue.ToLower()))); } }
private static void AssertTextPropertyOrder(string columnName, SortDirectionsEnum direction, TableElement tableElement) { var actualColumnValues = tableElement.GetColumnRowValues(columnName); var expectedColumnValues = direction == SortDirectionsEnum.Asc ? actualColumnValues.OrderBy(x => x) : actualColumnValues.OrderByDescending(x => x); Assert.IsNotEmpty(actualColumnValues); Assert.IsTrue(expectedColumnValues.SequenceEqual(actualColumnValues)); }
private void AssertNonTextPropertyOrder(string columnName, string columnHeader, SortDirectionsEnum direction, Type propertyType, TableElement tableElement) { var actualColumnValues = tableElement.GetColumnRowValues(columnHeader); var stringParseFunction = this.GetStringParseFunction(columnName, propertyType); var expectedColumnValues = direction == SortDirectionsEnum.Asc ? actualColumnValues.OrderBy(stringParseFunction) : actualColumnValues.OrderByDescending(stringParseFunction); Assert.IsNotEmpty(actualColumnValues); Assert.IsTrue(expectedColumnValues.SequenceEqual(actualColumnValues)); }
public void EqualShouldWorkProperly(Expression <Func <AllTypesModel, IComparable> > selector) { this.navigator.AllTypesDataPage().GoTo(); var colName = this.GetColumnName(selector); var filterValue = this.GetRandomValue(selector.Compile()); var table = new TableElement("table", this.driver); var filterContainer = new CustomFilterContainer(this.driver, "#custom-filters-container"); filterContainer.Eq(colName, filterValue.ToString()); var columnFilteredValues = table.GetColumnRowValues(colName); Assert.IsTrue(columnFilteredValues.All(x => x.ToLower() == filterValue.ToString().ToLower())); }
public void SearchByStringFiledShouldWorkProperlyAndCaseInsensitive(int caseNumber, Func <AllTypesModel, string> selector) { var columnName1 = "StringProperty"; var columnName2 = "Nested Model StringProperty"; for (int i = 0; i < 5; i++) { this.navigator.AllTypesDataPage().GoTo("?showChar=false"); var tableElement = new TableElement("table", this.driver); var searchValue = this.GetRandomSubstringContainedInData(selector).RandomiseCase(); tableElement.TypeInSearchBox(searchValue); Thread.Sleep(GlobalConstants.GlobalThreadSleep); var filteredValues1 = tableElement.GetColumnRowValues(columnName1).ToList(); var filteredValues2 = tableElement.GetColumnRowValues(columnName2).ToList(); var joinedColumns = new List <string>(); for (int j = 0; j < filteredValues1.Count(); j++) { joinedColumns.Add(filteredValues1[j] + filteredValues2[j]); } Assert.IsTrue(joinedColumns.All(x => x.ToLower().Contains(searchValue.ToLower()))); } }
public void FilterByMultipleColumnShouldWorkProperly(string testCase, Expression <Func <AllTypesModel, object> >[] selectors) { this.navigator.AllTypesDataPage().GoTo(); string firstColumnName = this.GetColumnName(selectors.First()); var firstInputId = "column-search-" + firstColumnName.Replace(' ', '-'); var table = new TableElement("table", this.driver); var filterValue = this.GetRandomValue(selectors.First().Compile()); table.TypeInInput($"#{firstInputId}", filterValue.ToString()); string secondColumnName = this.GetColumnName(selectors.Last()); var secondColumnValues = table.GetColumnRowValuesUntilAny(secondColumnName); var secondFilterValue = secondColumnValues.First(); var secondInputId = "column-search-" + secondColumnName.Replace(' ', '-'); table.TypeInInput($"#{secondInputId}", secondFilterValue); var columnValues = table.GetColumnRowValues(firstColumnName); this.AssertColumnValues(columnValues, filterValue, ComparissonTypesEnum.Equal); columnValues = table.GetColumnRowValues(secondColumnName); this.AssertColumnValues(columnValues, secondFilterValue, ComparissonTypesEnum.Equal); }