コード例 #1
0
            public void it_should_apply_the_query_paging_and_ordering_when_the_pagingAndSortingInfo_parameter_is_not_null()
            {
                var sut = new QueryHandler_SpecificQuery_Mock();
                var title = "wa";
                var queryObject = new FindMoviesByTitleQuery(title);
                var property = sut.GetType().GetProperty("InitialItems", BindingFlags.DeclaredOnly | BindingFlags.NonPublic | BindingFlags.Instance);
                var items = (IQueryable<Movie>)property.GetValue(sut);
                var pagingInfo = new PagingAndSortingInfo(page: 2, pageSize: 1);
                var pageIndex = pagingInfo.Page - 1;
                var expectedItems = items.Where(x => x.Title.ToLower().Contains(title.ToLower()));
                var expectedPagedItems = expectedItems.OrderByDescending(x => x.ID).Skip(pageIndex * pagingInfo.PageSize).Take(pagingInfo.PageSize);

                var res = sut.HandleQuery(queryObject, pagingInfo);

                res.Should().NotBeNull();
                res.VirtualRowsCount.Should().Be(expectedItems.Count());
                res.Results.Should().NotBeNull()
                    .And.HaveCount(expectedPagedItems.Count());
                expectedPagedItems.ToList().ForEach(z =>
                    {
                        var item = res.Results.FirstOrDefault(x => x.ID.Equals(z.ID));

                        item.Should().NotBeNull("The expected item should belong to the res list");
                    });
            }
コード例 #2
0
            public void it_should_apply_the_query_without_paging_nor_ordering_when_the_pagingAndSortingInfo_parameter_is_null()
            {
                var sut = new QueryHandler_SpecificQuery_Mock();
                var title = "wa";
                var queryObject = new FindMoviesByTitleQuery(title);
                var property = sut.GetType().GetProperty("InitialItems", BindingFlags.DeclaredOnly | BindingFlags.NonPublic | BindingFlags.Instance);
                var items = (IQueryable<Movie>)property.GetValue(sut);
                var expectedItems = items.Where(x => x.Title.ToLower().Contains(title.ToLower()));

                var res = sut.HandleQuery(queryObject);

                res.Should().NotBeNull();
                res.VirtualRowsCount.Should().Be(expectedItems.Count());
                res.Results.Should().NotBeNull()
                    .And.HaveCount(expectedItems.Count());
                res.Results.ToList().ForEach(z =>
                    {
                        var item = expectedItems.FirstOrDefault(x => x.ID.Equals(z.ID));

                        item.Should().NotBeNull();
                    });
            }