Ejemplo n.º 1
0
            public async Task PaginateSetsDocumentsInMetadata()
            {
                // Given
                List <IList <string> > content = new List <IList <string> >();
                CountModule            count   = new CountModule("A")
                {
                    AdditionalOutputs   = 7,
                    EnsureInputDocument = true
                };
                PaginateDocuments paginate   = new PaginateDocuments(3);
                ForEachDocument   gatherData = new ExecuteConfig(
                    Config.FromDocument(async d =>
                {
                    List <string> pageContent = await d.GetChildren()
                                                .ToAsyncEnumerable()
                                                .SelectAwait(async x => await x.GetContentStringAsync())
                                                .ToListAsync();
                    content.Add(pageContent);
                })).ForEachDocument();

                // When
                await ExecuteAsync(count, paginate, gatherData);

                // Then
                Assert.AreEqual(3, content.Count);
                CollectionAssert.AreEqual(new[] { "1", "2", "3" }, content[0]);
                CollectionAssert.AreEqual(new[] { "4", "5", "6" }, content[1]);
                CollectionAssert.AreEqual(new[] { "7", "8" }, content[2]);
            }
            public async Task SetsTotalItems()
            {
                // Given
                TestDocument      a        = new TestDocument();
                TestDocument      b        = new TestDocument();
                TestDocument      c        = new TestDocument();
                TestDocument      d        = new TestDocument();
                TestDocument      e        = new TestDocument();
                PaginateDocuments paginate = new PaginateDocuments(2);

                // When
                ImmutableArray <TestDocument> results = await ExecuteAsync(new[] { a, b, c, d, e }, paginate);

                // Then
                results.Select(x => x.GetInt(Keys.TotalItems)).ShouldBe(new[] { 5, 5, 5 });
            }
            public async Task SetsNext()
            {
                // Given
                TestDocument      a        = new TestDocument();
                TestDocument      b        = new TestDocument();
                TestDocument      c        = new TestDocument();
                TestDocument      d        = new TestDocument();
                TestDocument      e        = new TestDocument();
                PaginateDocuments paginate = new PaginateDocuments(2);

                // When
                ImmutableArray <TestDocument> results = await ExecuteAsync(new[] { a, b, c, d, e }, paginate);

                TestExecutionContext context = new TestExecutionContext(results);  // Reset the context since that's what would happen during execution

                // Then
                results[0].GetDocument(Keys.Next).ShouldBe(results[1]);
                results[1].GetDocument(Keys.Next).ShouldBe(results[2]);
                results[2].GetDocument(Keys.Next).ShouldBeNull();
            }