Exemplo n.º 1
0
 public async Task BrokenServerFixedSizePagedAsync()
 {
     var server  = new FakeServer(s_resourceA, 1);
     var request = new PageStreamingRequest {
         PageSize = 0
     };
     var paged = server.PagedAsync(null, null, request);
     await Assert.ThrowsAsync <NotSupportedException>(() => paged.ReadPageAsync(1));
 }
Exemplo n.º 2
0
        public async Task FlattenAsync(PagedResource pagedResource, int pageSize)
        {
            var server  = new FakeServer(pagedResource);
            var request = new PageStreamingRequest {
                PageSize = pageSize
            };
            var paged = server.PagedAsync(null, null, request);

            Assert.Equal(pagedResource.All, await paged.ToArray());
        }
Exemplo n.º 3
0
        public async Task SpecifyPageTokenAtStartAsync()
        {
            var server  = new FakeServer(s_resourceA, 1);
            var request = new PageStreamingRequest {
                PageSize = 0, PageToken = "1:0"
            };
            var paged = server.PagedAsync(null, null, request);

            Assert.Equal(s_resourceA.Resource.Skip(1), await paged.AsRawResponses().Select(x => x.ToArray()).ToArray());
        }
Exemplo n.º 4
0
        public async Task NaturalPagesAsync(PagedResource pagedResource)
        {
            var server  = new FakeServer(pagedResource);
            var request = new PageStreamingRequest {
                PageSize = 0
            };
            var paged = server.PagedAsync(null, null, request);

            Assert.Equal(pagedResource.Resource, await paged.AsRawResponses().Select(x => x.ToArray()).ToArray());
        }
Exemplo n.º 5
0
        public async Task NoDataAsync()
        {
            var noDataResource = new PagedResource();
            var server         = new FakeServer(noDataResource);
            var request        = new PageStreamingRequest {
                PageSize = 0
            };
            var paged = server.PagedAsync(null, null, request);

            // Natural pages
            Assert.Equal(1, await paged.AsRawResponses().Count());
            var page1 = await paged.AsRawResponses().First();

            Assert.Empty(page1);
            Assert.Equal("", page1.NextPageToken);
            // Unnatural things
            Assert.Empty(await paged.ToArray());
            Assert.Empty(await paged.ReadPageAsync(1));
        }
Exemplo n.º 6
0
        public async Task ReadPageAsync(PagedResource pagedResource, int pageSize)
        {
            var    server      = new FakeServer(pagedResource);
            string pageToken   = "";
            var    actualPages = new List <Page <int> >();

            do
            {
                var request = new PageStreamingRequest {
                    PageSize = pageSize, PageToken = pageToken
                };
                var paged = server.PagedAsync(null, null, request);
                actualPages.Add(await paged.ReadPageAsync(pageSize));
            } while ((pageToken = actualPages.Last().NextPageToken) != "");
            var expectedPages = pagedResource.Fixed(pageSize);

            // Ignore trailing empty pages; we could change the fake server to avoid returning a page
            // token when we've reached (but not gone past) the end.
            Assert.Equal(expectedPages, actualPages.TakeWhile(p => p.Any()).Select(p => p.ToArray()).ToArray());
        }