Esempio n. 1
0
    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");
    }
Esempio n. 2
0
    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");
    }
Esempio n. 3
0
    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");
    }
Esempio n. 4
0
        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");
            }
        }
Esempio n. 5
0
    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));
    }
Esempio n. 6
0
    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");
    }
Esempio n. 7
0
    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");
    }
Esempio n. 8
0
    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");
    }
Esempio n. 9
0
    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");
    }