How to create an Azure.AsyncPageable for mocking?
Asked Answered
A

1

15

I would like to mock a C# method that returns an Azure.AsyncPageable.

This class has only protected constructors, so I cannot instantiate it directly. Is there any way to create an instance of this class from some other collection, such as an IAsyncEnumerable or just a List?

Africa answered 13/2, 2023 at 9:4 Comment(0)
B
27

You can create Page objects using Page<T>.FromValues. Then, create a AsyncPageable<T> using AsyncPageable<T>.FromPages.

Example:

        var page = Page<TableEntity>.FromValues(new List<TableEntity>
        {
            new TableEntity("1a", "2a"),
            new TableEntity("1", "2b")
        }, continuationToken: null, new Mock<Response>().Object);
        var pages = AsyncPageable<TableEntity>.FromPages(new[] { page });
Bac answered 13/2, 2023 at 9:21 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.