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())));
            }
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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);
        }