public void ThenAllTheColumnsAreSortable() { var page = new Pages.OnHoldPrefixes(Setup.TestSetup.Driver); bool check <T>(string h, Func <string, T> trans) where T : IComparable => page.ClickHeader(h).Map(ascending => { Console.WriteLine($"Header {h} / Ascending {ascending}"); var f = ascending ? fun((T a, T b) => a.CompareTo(b) <= 0 ? 0 : 1) : fun((T a, T b) => a.CompareTo(b) >= 0 ? 0 : 1); var xs = page.GetColumn(h).Select(trans); return(xs.Tail().Fold((s: xs.Head(), n: 0), (t, v) => (s: v, n: t.n + f(t.s, v))).n == 0); }).Exists(identity); page.ColumnHeaders().Filter(s => s != "Reason" && s != "Actions" && s != "Capacity" && s != "Date") .All(h => check(h, identity) && check(h, identity)) .ShouldBeTrue(); DateTime dateTrans(string s) => DateTime.Parse(s); (check("Date", dateTrans) && check("Date", dateTrans)).ShouldBeTrue(); (check("Capacity", Int32.Parse) && check("Capacity", Int32.Parse)).ShouldBeTrue(); }
public void ThenFilterColumnsFetchesTheDesiredDataBasedUponFilterConditions() { var page = new Pages.OnHoldPrefixes(Setup.TestSetup.Driver); var headers = page.ColumnHeaders().Filter(s => s != "Reason" && s != "Actions"); page.MoveToLastPage(); var values = headers.ToDictionary(identity, h => page.GetColumn(h).Last()); string fix(string s) { var vv = s.Trim().Split((char[])null, StringSplitOptions.RemoveEmptyEntries); return(vv.Count() > 1 ? vv[1] : vv[0]); } bool check(string h) { var v = fix(values[h]); Console.WriteLine($"Header {h} / Value {v}"); page.EnterFilter(v); System.Threading.Thread.Sleep(500); return(page.GetColumn(h).All(x => fix(x).Contains(v))); } headers.All(check).ShouldBeTrue(); }
public void ThenIGetMultipleColumnsSuchAsX(string names) { var page = new Pages.OnHoldPrefixes(Setup.TestSetup.Driver); var header = page.ColumnHeaders(); names.Split(',').All(s => header.Contains(s.Trim())).ShouldBeTrue(); }
public void ThenItemsPageFetchesTheCountBasedUponTheSelection() { var page = new Pages.OnHoldPrefixes(Setup.TestSetup.Driver); page.ClearFilter(); System.Threading.Thread.Sleep(500); var n = page.PrefixCount(); Console.WriteLine($"Prefix cound on page = {n}"); bool check(int cap) { var m = Math.Min(n, cap); page.SelectItemsPerPage(cap); System.Threading.Thread.Sleep(500); var k = page.GetColumn("Capacity").Count(); Console.WriteLine($"page size {cap} / expected count {m} / real count {k}"); return(m == k); } List(10, 25, 50).All(check).ShouldBeTrue(); }