public async Task ResourceDiscoveryV2_GetAllPerResourceTypeWithoutFilters_ReturnsExpectedAmountThroughPaging()
        {
            // Arrange
            const string resourceDiscoveryGroupName = "logic-apps-unfiltered";
            const int    pageSize = 1000;
            const int    expectedTotalResourceCount = 1018;
            var          resourceDiscoveryClient    = new ResourceDiscoveryClient(Configuration, Logger);

            // Act & Assert
            var  currentPage = 1;
            bool hasMore;

            do
            {
                Logger.LogInformation("Discovering resources with page size for page {CurrentPage}", currentPage);

                var response = await resourceDiscoveryClient.GetDiscoveredResourcesV2WithResponseAsync(resourceDiscoveryGroupName, currentPage : currentPage);

                var resources = await AssertAndGetPagedResult(response);

                Assert.NotNull(resources);
                Assert.NotNull(resources.PageInformation);

                var delta = expectedTotalResourceCount - ((currentPage - 1) * pageSize);
                var amountOfExpectedResults = delta > pageSize ? pageSize : delta;
                Assert.Equal(amountOfExpectedResults, resources.Result.Count);
                Assert.Equal(expectedTotalResourceCount, resources.PageInformation.TotalRecords);

                hasMore = resources.HasMore;
                currentPage++;
            }while (hasMore);
        }
        public async Task ResourceDiscoveryV2_GetWithFilterOnTwoRegions_ReturnsExpectedAmount()
        {
            // Arrange
            const string resourceDiscoveryGroupName = "two-region-scenario";
            const int    expectedResourceCount      = 415;
            var          resourceDiscoveryClient    = new ResourceDiscoveryClient(Configuration, Logger);

            // Act
            var response = await resourceDiscoveryClient.GetDiscoveredResourcesV2WithResponseAsync(resourceDiscoveryGroupName);

            // Assert
            await AssertV2PagedResult(response, expectedResourceCount);
        }
        public async Task ResourceDiscoveryV2_GetWithFilterOnMultipleValueInstanceTag_ReturnsExpectedAmount()
        {
            // Arrange
            const string resourceDiscoveryGroupName = "one-instance-tag-with-multi-value-scenario";
            const int    expectedResourceCount      = 409;
            var          resourceDiscoveryClient    = new ResourceDiscoveryClient(Configuration, Logger);

            // Act
            var response = await resourceDiscoveryClient.GetDiscoveredResourcesV2WithResponseAsync(resourceDiscoveryGroupName);

            // Assert
            await AssertV2PagedResult(response, expectedResourceCount);
        }
        public async Task ResourceDiscoveryV2_GetWithFilterOnOneSubscription_ReturnsExpectedAmount()
        {
            // Arrange
            const string resourceDiscoveryGroupName = "one-subscriptions-scenario";
            const int    expectedResourceCount      = 1000; // This should be more but is a known bug, see https://github.com/tomkerkhove/promitor/issues/1828
            var          resourceDiscoveryClient    = new ResourceDiscoveryClient(Configuration, Logger);

            // Act
            var response = await resourceDiscoveryClient.GetDiscoveredResourcesV2WithResponseAsync(resourceDiscoveryGroupName);

            // Assert
            await AssertV2PagedResult(response, expectedResourceCount);
        }
        public async Task ResourceDiscoveryV2_GetWithFilterOnOneResourceGroupWithDifferentCasing_ReturnsExpectedAmount()
        {
            // Arrange
            const string resourceDiscoveryGroupName = "one-resource-group-scenario-with-other-casing";
            const int    expectedResourceCount      = 6;
            var          resourceDiscoveryClient    = new ResourceDiscoveryClient(Configuration, Logger);

            // Act
            var response = await resourceDiscoveryClient.GetDiscoveredResourcesV2WithResponseAsync(resourceDiscoveryGroupName);

            // Assert
            await AssertV2PagedResult(response, expectedResourceCount);
        }
        public async Task ResourceDiscoveryV2_GetAllPerResourceTypeWithoutFiltersAndSpecificPageSize_ReturnsExpectedAmount()
        {
            // Arrange
            const string resourceDiscoveryGroupName = "logic-apps-unfiltered";
            const int    expectedTotalResources     = 1018;
            const int    pageSize = 500;
            int          expectedResourceCount   = pageSize;
            var          resourceDiscoveryClient = new ResourceDiscoveryClient(Configuration, Logger);

            // Act
            var response = await resourceDiscoveryClient.GetDiscoveredResourcesV2WithResponseAsync(resourceDiscoveryGroupName, pageSize : pageSize);

            // Assert
            await AssertV2PagedResult(response, expectedResourceCount, pageSize, expectedTotalResources);
        }