Example #1
0
        public async Task TakeLast()
        {
            // arrange
            var           typeInspector = new DefaultTypeInspector();
            IExtendedType sourceType    = typeInspector.GetType(typeof(List <string>));

            IPagingProvider pagingProvider = new QueryableCursorPagingProvider();
            IPagingHandler  pagingHandler  = pagingProvider.CreateHandler(sourceType, default);

            var list = new List <string> {
                "a", "b", "c", "d", "e", "f", "g"
            };

            var pagingDetails = new CursorPagingArguments(last: 2);
            var context       = new MockContext(pagingDetails);

            // act
            var connection = (Connection)await pagingHandler.SliceAsync(context, list);

            // assert
            Assert.Collection(connection.Edges,
                              t =>
            {
                Assert.Equal("f", t.Node);
                Assert.Equal(5, GetPositionFromCursor(t.Cursor));
            },
                              t =>
            {
                Assert.Equal("g", t.Node);
                Assert.Equal(6, GetPositionFromCursor(t.Cursor));
            });

            Assert.True(
                connection.Info.HasPreviousPage,
                "HasPreviousPage");

            Assert.False(
                connection.Info.HasNextPage,
                "HasNextPage");
        }
        public async Task HasPrevious_False()
        {
            // arrange
            var           typeInspector = new DefaultTypeInspector();
            IExtendedType sourceType    = typeInspector.GetType(typeof(List <string>));

            IPagingProvider pagingProvider = new QueryableCursorPagingProvider();
            IPagingHandler  pagingHandler  = pagingProvider.CreateHandler(sourceType, default);

            var list = new List <string> {
                "a", "b", "c", "d", "e", "f", "g"
            };

            var pagingDetails = new CursorPagingArguments(first: 1);
            var context       = new MockContext(pagingDetails);

            // act
            var connection = (Connection)await pagingHandler.SliceAsync(context, list);

            // assert
            Assert.False(connection.Info.HasPreviousPage);
        }