public void TestMultipleAggregate() { var dataSource = SampleEntities.GenerateData().AsQueryable(); var data = dataSource.Take(PageSize).ToList(); Assert.AreEqual(PageSize, data.Count, "Set has 10 items"); var request = new GridDataRequest { Take = PageSize, Skip = 0, Columns = Thing.GetColumnsWithMultipleCounts() }; var response = request.CreateGridDataResponse(dataSource); Assert.AreEqual(data.Count, response.Payload.Count, "Same length"); Assert.AreEqual(data.First().Id, response.Payload.First().First(), "Same first item"); Assert.AreEqual(dataSource.Select(x => x.Id).Distinct().Count(), (int)response.AggregationPayload["Id"], "Id same distinct count"); Assert.AreEqual(dataSource.Select(x => x.Number).Distinct().Count(), (int)response.AggregationPayload["Number"], "Number same distinct count"); Assert.AreEqual(dataSource.Select(x => x.DecimalNumber).Distinct().Count(), (int)response.AggregationPayload["DecimalNumber"], "DecimalNumber same distinct count"); Assert.AreEqual(dataSource.Select(x => x.Name).Distinct().Count(), (int)response.AggregationPayload["Name"], "Name same distinct count"); Assert.AreEqual(dataSource.Select(x => x.Date).Distinct().Count(), (int)response.AggregationPayload["Date"], "Date same distinct count"); Assert.AreEqual(dataSource.Select(x => x.IsShipped).Distinct().Count(), (int)response.AggregationPayload["IsShipped"], "IsShipped same distinct count"); }
public void TestSimpleAggregate() { var dataSource = SampleEntities.GenerateData().AsQueryable(); var data = dataSource.Take(PageSize).ToList(); Assert.AreEqual(PageSize, data.Count, "Set has 10 items"); var request = new GridDataRequest { Take = PageSize, Skip = 0, Columns = Thing.GetColumnsWithAggregate() }; var response = request.CreateGridDataResponse(dataSource); Assert.AreEqual(data.Count, response.Payload.Count, "Same length"); Assert.AreEqual(data.First().Id, response.Payload.First().First(), "Same first item"); Assert.AreEqual(dataSource.Sum(x => x.Number), response.AggregationPayload["Number"], "Same average number"); Assert.AreEqual(dataSource.Sum(x => x.DecimalNumber), (decimal)response.AggregationPayload["DecimalNumber"], "Same average decimal number"); Assert.AreEqual(dataSource.Max(x => x.Name), response.AggregationPayload["Name"], "Same max name"); Assert.That(dataSource.Min(x => x.Date), Is.EqualTo(response.AggregationPayload["Date"]).Within(10).Seconds, "Same min date"); }
private static void SimpleListTest(bool ignoreTimezone, int page = 1, int setSize = 445) { var dataSource = SampleEntities.GenerateData(setSize).AsQueryable(); var data = dataSource.Skip(PageSize * page).Take(PageSize).ToList(); const int timezoneOffset = 300; if (PageSize * page + PageSize < setSize) { Assert.AreEqual(data.Count, PageSize, "Set has 10 items"); } var request = new GridDataRequest { Take = PageSize, Skip = PageSize * page, Columns = Thing.GetColumns(), TimezoneOffset = timezoneOffset }; var response = request.CreateGridDataResponse(dataSource); Assert.AreEqual(page + 1, response.CurrentPage); Assert.AreEqual(data.Count, response.Payload.Count, "Same length"); Assert.AreEqual(data.First().Id, response.Payload.First().First(), "Same first item"); Assert.That( ignoreTimezone ? data.First().Date : data.First().Date.AddMinutes(-timezoneOffset), Is.EqualTo(response.Payload.First()[2]).Within(10).Seconds, "Same date at first item"); Assert.AreEqual(dataSource.Count(), response.TotalRecordCount, "Total rows matching"); }
public void ProcessResponseSubsetTest() { const string filter = "blue"; var dataSource = SampleEntities.GenerateData().AsQueryable(); var filterCount = dataSource.Where(x => x.Color == filter); var data = filterCount.Take(PageSize).ToList(); var request = new GridDataRequest { Take = PageSize, Skip = 0, Columns = Thing.GetColumnsWithColorFilter(filter, CompareOperators.Equals) }; var response = request.CreateGridDataResponse(dataSource, FormatOutput); Assert.AreEqual(data.Count, response.Payload.Count, "Same length"); foreach (var item in response.Payload) { Assert.AreNotEqual(filter, item[4], "Different color"); } foreach (var item in response.Payload) { Assert.AreEqual("darkblue", item[4], "Same color"); } }
public void CreateGridDataResponseThrowArgumentExceptionTest() { var filters = new[] { "blue", "red" }; var dataSource = SampleEntities.GenerateData().AsQueryable().Where(x => x.Color.Equals(filters[0]) && x.Color.Equals(filters[1])); var request = new GridDataRequest { Take = PageSize, Skip = 0, Columns = null }; Assert.Throws <ArgumentNullException>(() => request.CreateGridDataResponse(dataSource)); }
public void TakeNone() { var dataSource = SampleEntities.GenerateData().AsQueryable(); var data = dataSource.ToList(); var request = new GridDataRequest { Take = 0, Skip = 0, Columns = Thing.GetColumns() }; var response = request.CreateGridDataResponse(dataSource); Assert.AreEqual(request.Take, response.Payload.Count, "Same items requested"); Assert.AreEqual(data.Count, response.TotalRecordCount, "Total rows matching"); }
public void SimpleSort() { var dataSource = SampleEntities.GenerateData().AsQueryable().OrderBy(x => x.Date); var data = dataSource.Take(PageSize).ToList(); var request = new GridDataRequest { Take = PageSize, Skip = 0, Columns = Thing.GetColumnsWithSort() }; var response = request.CreateGridDataResponse(dataSource); Assert.AreEqual(data.Count, response.Payload.Count, "Same length"); Assert.AreEqual(data.First().Id, response.Payload.First().First(), "Same first item"); Assert.AreEqual(dataSource.Count(), response.TotalRecordCount, "Total rows matching"); }
public void SimpleFilter() { const int filter = 95; var dataSource = SampleEntities.GenerateData().AsQueryable(); var filterCount = dataSource.Where(x => x.Id > filter); var data = filterCount.Take(PageSize).ToList(); var request = new GridDataRequest { Take = PageSize, Skip = 0, Columns = Thing.GetColumnsWithIdFilter(filter.ToString(), CompareOperators.Gt) }; var response = request.CreateGridDataResponse(dataSource); Assert.AreEqual(data.Count, response.Payload.Count, "Same length"); Assert.AreEqual(filterCount.Count(), response.FilteredRecordCount, "Total filtered rows matching"); }
public void SimpleSearch() { var dataSource = SampleEntities.GenerateData().AsQueryable(); var data = dataSource.Where(x => x.Name.Contains(SearchText)).Take(PageSize).ToList(); var request = new GridDataRequest { Take = PageSize, Skip = 0, SearchText = SearchText, Columns = Thing.GetColumns() }; var response = request.CreateGridDataResponse(dataSource); Assert.AreEqual(data.Count, response.Payload.Count, "Same length"); Assert.AreEqual(data.First().Id, response.Payload.First().First(), "Same first item"); Assert.AreEqual(dataSource.Count(x => x.Name.Contains(SearchText)), response.FilteredRecordCount, "Total filtered rows matching"); }